package com.ctre;
import jaci.openrio.toast.core.loader.simulation.srx.SRX_Reg;
import java.util.HashMap;
public class CanTalonJNI {
public static final int kMotionProfileFlag_ActTraj_IsValid = 1;
public static final int kMotionProfileFlag_HasUnderrun = 2;
public static final int kMotionProfileFlag_IsUnderrun = 4;
public static final int kMotionProfileFlag_ActTraj_IsLast = 8;
public static final int kMotionProfileFlag_ActTraj_VelOnly = 16;
public static String ERR_CANSessionMux_InvalidBuffer_MESSAGE = "CAN: Invalid Buffer";
public static String ERR_CANSessionMux_MessageNotFound_MESSAGE = "CAN: Message not found";
public static String WARN_CANSessionMux_NoToken_MESSAGE = "CAN: No token";
public static String ERR_CANSessionMux_NotAllowed_MESSAGE = "CAN: Not allowed";
public static String ERR_CANSessionMux_NotInitialized_MESSAGE = "CAN: Not initialized";
public static String CTR_RxTimeout_MESSAGE = "CTRE CAN Receive Timeout";
public static String CTR_TxTimeout_MESSAGE = "CTRE CAN Transmit Timeout";
public static String CTR_InvalidParamValue_MESSAGE = "CTRE CAN Invalid Parameter";
public static String CTR_UnexpectedArbId_MESSAGE = "CTRE Unexpected Arbitration ID (CAN Node ID)";
public static String CTR_TxFailed_MESSAGE = "CTRE CAN Transmit Error";
public static String CTR_SigNotUpdated_MESSAGE = "CTRE CAN Signal Not Updated";
public static final int CTR_RxTimeout = 1;
public static final int CTR_TxTimeout = 2;
public static final int CTR_InvalidParamValue = 3;
public static final int CTR_UnexpectedArbId = 4;
public static final int CTR_TxFailed = 5;
public static final int CTR_SigNotUpdated = 6;
public static final int ERR_CANSessionMux_InvalidBuffer = -44086;
public static final int ERR_CANSessionMux_MessageNotFound = -44087;
public static final int WARN_CANSessionMux_NoToken = 44087;
public static final int ERR_CANSessionMux_NotAllowed = -44088;
// Patch bootstrap stuff
public static double ltd(long l) { return Double.longBitsToDouble(l); }
public static long dtl(double d) { return Double.doubleToLongBits(d); }
// End bootstrap stuff
public CanTalonJNI() {
}
public static long new_CanTalonSRX(int deviceNumber, int controlPeriodMs, int enablePeriodMs) {
SRX_Reg.wrappers.putIfAbsent((long)deviceNumber, new SRX_Reg.SRX_Wrapper(deviceNumber, controlPeriodMs));
return deviceNumber;
}
public static long new_CanTalonSRX(int deviceNumber, int controlPeriodMs) {
return new_CanTalonSRX(deviceNumber, controlPeriodMs, 0);
}
public static long new_CanTalonSRX(int deviceNumber) {
return new_CanTalonSRX(deviceNumber, 0);
}
// Don't bother
public static void delete_CanTalonSRX(long handle) { }
public static void GetMotionProfileStatus(long handle, CANTalon talon, CANTalon.MotionProfileStatus status) {
// Don't bother, not used
}
public static void Set(long handle, double value) {
SRX_Reg.wrappers.get(handle).setVBus(value);
}
public static void SetParam(long handle, int param, double value) {
SRX_Reg.wrappers.get(handle).params.put(param, value);
}
public static void RequestParam(long handle, int param) {
//SRX_Reg.wrappers.get(handle).params.get(param);
}
public static double GetParamResponse(long handle, int param) {
return SRX_Reg.wrappers.get(handle).params.get(param);
}
public static int GetParamResponseInt32(long handle, int param) {
return (int)dtl(SRX_Reg.wrappers.get(handle).params.get(param));
}
public static void SetPgain(long handle, int slot_id, double value) {
SRX_Reg.wrappers.get(handle).setGains((int)slot_id, 0, value);
}
public static void SetIgain(long handle, int slot_id, double value) {
SRX_Reg.wrappers.get(handle).setGains((int)slot_id, 1, value);
}
public static void SetDgain(long handle, int slot_id, double value) {
SRX_Reg.wrappers.get(handle).setGains((int)slot_id, 2, value);
}
public static void SetFgain(long handle, int slot_id, double value) {
SRX_Reg.wrappers.get(handle).setGains((int)slot_id, 3, value);
}
public static void SetIzone(long var0, int var2, int var3) { }
public static void SetCloseLoopRampRate(long var0, int var2, int var3) { }
public static void SetVoltageCompensationRate(long var0, double var2) { }
public static void SetSensorPosition(long var0, int var2) { }
public static void SetForwardSoftLimit(long var0, int var2) { }
public static void SetReverseSoftLimit(long var0, int var2) { }
public static void SetForwardSoftEnable(long var0, int var2) { }
public static void SetReverseSoftEnable(long var0, int var2) { }
public static double GetPgain(long handle, int slot_id) {
return SRX_Reg.wrappers.get(handle).gains[(int)slot_id][0];
}
public static double GetIgain(long handle, int slot_id) {
return SRX_Reg.wrappers.get(handle).gains[(int)slot_id][1];
}
public static double GetDgain(long handle, int slot_id) {
return SRX_Reg.wrappers.get(handle).gains[(int)slot_id][2];
}
public static double GetFgain(long handle, int slot_id) {
return SRX_Reg.wrappers.get(handle).gains[(int)slot_id][3];
}
public static int GetIzone(long handle, int slot_id) {
return 0;
}
public static int GetCloseLoopRampRate(long var0, int var2) { return 0; }
public static double GetVoltageCompensationRate(long var0) { return 0; }
public static int GetForwardSoftLimit(long var0) { return 0; }
public static int GetReverseSoftLimit(long var0) { return 0; }
public static int GetForwardSoftEnable(long var0) { return 0; }
public static int GetReverseSoftEnable(long var0) { return 0; }
public static int GetPulseWidthRiseToFallUs(long var0) { return 0; }
public static int IsPulseWidthSensorPresent(long var0) { return 0; }
public static void SetModeSelect(long handle, int mode) {
SRX_Reg.wrappers.get(handle).setMode(mode);
}
public static void SetModeSelect2(long handle, int mode, int var3) {
SRX_Reg.wrappers.get(handle).setMode(mode);
}
public static void SetStatusFrameRate(long var0, int var2, int var3) { }
public static void ClearStickyFaults(long var0) { }
public static void ChangeMotionControlFramePeriod(long var0, int var2) { }
public static void ClearMotionProfileTrajectories(long var0) { }
public static int GetMotionProfileTopLevelBufferCount(long var0) { return 0; }
public static boolean IsMotionProfileTopLevelBufferFull(long var0) { return true; }
public static void PushMotionProfileTrajectory(long var0, int var2, int var3, int var4, int var5, int var6, int var7, int var8) { }
public static void ProcessMotionProfileBuffer(long var0) { }
public static int GetFault_OverTemp(long var0) { return 0; }
public static int GetFault_UnderVoltage(long var0) { return 0; }
public static int GetFault_ForLim(long var0) { return 0; }
public static int GetFault_RevLim(long var0) { return 0; }
public static int GetFault_HardwareFailure(long var0) { return 0; }
public static int GetFault_ForSoftLim(long var0) { return 0; }
public static int GetFault_RevSoftLim(long var0) { return 0; }
public static int GetStckyFault_OverTemp(long var0) { return 0; }
public static int GetStckyFault_UnderVoltage(long var0) { return 0; }
public static int GetStckyFault_ForLim(long var0) { return 0; }
public static int GetStckyFault_RevLim(long var0) { return 0; }
public static int GetStckyFault_ForSoftLim(long var0) { return 0; }
public static int GetStckyFault_RevSoftLim(long var0) { return 0; }
public static int GetAppliedThrottle(long handle) {
return (int) (SRX_Reg.wrappers.get(handle).pvbus * 1023);
}
public static int GetCloseLoopErr(long var0) { return 0; }
public static int GetFeedbackDeviceSelect(long var0) { return 0; }
public static int GetModeSelect(long handle) {
return SRX_Reg.wrappers.get(handle).mode;
}
public static int GetLimitSwitchEn(long var0) { return 0; }
public static int GetLimitSwitchClosedFor(long var0) { return 0; }
public static int GetLimitSwitchClosedRev(long var0) { return 0; }
public static int GetClearPosOnIdx(long var0) { return 0; }
public static int GetClearPosOnLimR(long var0) { return 0; }
public static int GetClearPosOnLimF(long var0) { return 0; }
public static int GetSensorPosition(long var0) { return 0; }
public static int GetSensorVelocity(long var0) { return 0; }
public static double GetCurrent(long var0) {
return 10; // I guess 10A is nominal?
}
public static int GetBrakeIsEnabled(long var0) { return 0; }
public static int GetEncPosition(long var0) { return 0; }
public static int GetEncVel(long var0) { return 0; }
public static int GetEncIndexRiseEvents(long var0) { return 0; }
public static int GetQuadApin(long var0) { return 0; }
public static int GetQuadBpin(long var0) { return 0; }
public static int GetQuadIdxpin(long var0) { return 0; }
public static int GetAnalogInWithOv(long var0) { return 0; }
public static int GetAnalogInVel(long var0) { return 0; }
public static double GetTemp(long var0) {
return 30.0; // 30C nominal?
}
public static double GetBatteryV(long var0) {
return 12; // 12V nominal
}
public static int GetResetCount(long var0) { return 0; }
public static int GetResetFlags(long var0) { return 0; }
public static int GetFirmVers(long var0) { return 0; }
public static int GetPulseWidthPosition(long var0) { return 0; }
public static int GetPulseWidthVelocity(long var0) { return 0; }
public static int GetPulseWidthRiseToRiseUs(long var0) { return 0; }
public static int GetActTraj_IsValid(long var0) { return 0; }
public static int GetActTraj_ProfileSlotSelect(long var0) { return 0; }
public static int GetActTraj_VelOnly(long var0) { return 0; }
public static int GetActTraj_IsLast(long var0) { return 0; }
public static int GetOutputType(long var0) { return 0; }
public static int GetHasUnderrun(long var0) { return 0; }
public static int GetIsUnderrun(long var0) { return 0; }
public static int GetNextID(long var0) { return 0; }
public static int GetBufferIsFull(long var0) { return 0; }
public static int GetCount(long var0) { return 0; }
public static int GetActTraj_Velocity(long var0) { return 0; }
public static int GetActTraj_Position(long var0) { return 0; }
public static void SetDemand(long handle, int demand) {
SRX_Reg.wrappers.get(handle).setDemand(demand);
}
public static void SetOverrideLimitSwitchEn(long var0, int var2) { }
public static void SetFeedbackDeviceSelect(long var0, int var2) { }
public static void SetRevMotDuringCloseLoopEn(long var0, int var2) { }
public static void SetOverrideBrakeType(long var0, int var2) { }
public static void SetProfileSlotSelect(long var0, int var2) { }
public static void SetRampThrottle(long var0, int var2) { }
public static void SetRevFeedbackSensor(long var0, int var2) { }
public static void SetCurrentLimEnable(long var0, boolean var2) { }
public static int GetLastError(long var0) { return 0; }
public static enum param_t {
eProfileParamSlot0_P(1),
eProfileParamSlot0_I(2),
eProfileParamSlot0_D(3),
eProfileParamSlot0_F(4),
eProfileParamSlot0_IZone(5),
eProfileParamSlot0_CloseLoopRampRate(6),
eProfileParamSlot1_P(11),
eProfileParamSlot1_I(12),
eProfileParamSlot1_D(13),
eProfileParamSlot1_F(14),
eProfileParamSlot1_IZone(15),
eProfileParamSlot1_CloseLoopRampRate(16),
eProfileParamSoftLimitForThreshold(21),
eProfileParamSoftLimitRevThreshold(22),
eProfileParamSoftLimitForEnable(23),
eProfileParamSoftLimitRevEnable(24),
eOnBoot_BrakeMode(31),
eOnBoot_LimitSwitch_Forward_NormallyClosed(32),
eOnBoot_LimitSwitch_Reverse_NormallyClosed(33),
eOnBoot_LimitSwitch_Forward_Disable(34),
eOnBoot_LimitSwitch_Reverse_Disable(35),
eFault_OverTemp(41),
eFault_UnderVoltage(42),
eFault_ForLim(43),
eFault_RevLim(44),
eFault_HardwareFailure(45),
eFault_ForSoftLim(46),
eFault_RevSoftLim(47),
eStckyFault_OverTemp(48),
eStckyFault_UnderVoltage(49),
eStckyFault_ForLim(50),
eStckyFault_RevLim(51),
eStckyFault_ForSoftLim(52),
eStckyFault_RevSoftLim(53),
eAppliedThrottle(61),
eCloseLoopErr(62),
eFeedbackDeviceSelect(63),
eRevMotDuringCloseLoopEn(64),
eModeSelect(65),
eProfileSlotSelect(66),
eRampThrottle(67),
eRevFeedbackSensor(68),
eLimitSwitchEn(69),
eLimitSwitchClosedFor(70),
eLimitSwitchClosedRev(71),
eSensorPosition(73),
eSensorVelocity(74),
eCurrent(75),
eBrakeIsEnabled(76),
eEncPosition(77),
eEncVel(78),
eEncIndexRiseEvents(79),
eQuadApin(80),
eQuadBpin(81),
eQuadIdxpin(82),
eAnalogInWithOv(83),
eAnalogInVel(84),
eTemp(85),
eBatteryV(86),
eResetCount(87),
eResetFlags(88),
eFirmVers(89),
eSettingsChanged(90),
eQuadFilterEn(91),
ePidIaccum(93),
eStatus1FrameRate(94),
eStatus2FrameRate(95),
eStatus3FrameRate(96),
eStatus4FrameRate(97),
eStatus6FrameRate(98),
eStatus7FrameRate(99),
eClearPositionOnIdx(100),
ePeakPosOutput(104),
eNominalPosOutput(105),
ePeakNegOutput(106),
eNominalNegOutput(107),
eQuadIdxPolarity(108),
eStatus8FrameRate(109),
eAllowPosOverflow(110),
eProfileParamSlot0_AllowableClosedLoopErr(111),
eNumberPotTurns(112),
eNumberEncoderCPR(113),
ePwdPosition(114),
eAinPosition(115),
eProfileParamVcompRate(116),
eProfileParamSlot1_AllowableClosedLoopErr(117),
eStatus9FrameRate(118),
eMotionProfileHasUnderrunErr(119),
eReserved120(120),
eLegacyControlMode(121),
eMotMag_Accel(122),
eMotMag_VelCruise(123),
eStatus10FrameRate(124),
eCurrentLimThreshold(125),
eBldcStatus1FrameRate(129),
eBldcStatus2FrameRate(130),
eBldcStatus3FrameRate(131),
eCustomParam0(137),
eCustomParam1(138),
ePersStorageSaving(139),
eClearPositionOnLimitF(144),
eClearPositionOnLimitR(145),
eMotionMeas_YawOffset(160),
eMotionMeas_CompassOffset(161),
eMotionMeas_BetaGain(162),
eMotionMeas_Reserved163(163),
eMotionMeas_GyroNoMotionCal(164),
eMotionMeas_EnterCalibration(165),
eMotionMeas_FusedHeadingOffset(166);
public final int value;
private param_t(int value) {
this.value = value;
}
}
}