From d04476bb2f4bc80a82e3e80d09d32dfb5259b3cf Mon Sep 17 00:00:00 2001 From: Omar Zrien Date: Thu, 27 Nov 2014 02:22:01 -0500 Subject: [PATCH] Wired close loop pos and vel to CANTalon::Set(). Did basic testing with close loop pos with talon slaving. Change-Id: I880a29bff29a43d45b7af1be05e08b09063bf5d7 --- wpilibc/wpilibC++Devices/src/CANTalon.cpp | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/wpilibc/wpilibC++Devices/src/CANTalon.cpp b/wpilibc/wpilibC++Devices/src/CANTalon.cpp index 23095ed8e2..fd3c404462 100644 --- a/wpilibc/wpilibC++Devices/src/CANTalon.cpp +++ b/wpilibc/wpilibC++Devices/src/CANTalon.cpp @@ -87,23 +87,30 @@ void CANTalon::Set(float value, uint8_t syncGroup) if(m_controlEnabled) { CTR_Code status; switch(GetControlMode()) { - case kThrottle: + case CANSpeedController::kPercentVbus: { m_impl->Set(value); status = CTR_OKAY; } break; - case kFollowerMode: + case CANSpeedController::kFollower: { status = m_impl->SetDemand((int)value); } break; - case kVoltageMode: + case CANSpeedController::kVoltage: { // Voltage is an 8.8 fixed point number. int volts = int(value * 256); status = m_impl->SetDemand(volts); } + break; + case CANSpeedController::kSpeed: + status = m_impl->SetDemand(value); + break; + case CANSpeedController::kPosition: + status = m_impl->SetDemand(value); + break; default: // TODO: Add support for other modes. Need to figure out what format // SetDemand needs.