diff --git a/hal/include/HAL/HAL.hpp b/hal/include/HAL/HAL.hpp index a0b65f1c14..c1605d9748 100644 --- a/hal/include/HAL/HAL.hpp +++ b/hal/include/HAL/HAL.hpp @@ -95,6 +95,10 @@ namespace HALUsageReporting kResourceType_HiTechnicAccel, kResourceType_HiTechnicCompass, kResourceType_SRF08, + kResourceType_AnalogOutput, + kResourceType_VictorSP, + kResourceType_TalonSRX, + kResourceType_CANTalonSRX, }; enum tInstances diff --git a/wpilibc/wpilibC++Devices/include/NetworkCommunication/CANInterfacePlugin.h b/wpilibc/wpilibC++Devices/include/NetworkCommunication/CANInterfacePlugin.h index f4c4064dc6..77d992cf24 100644 --- a/wpilibc/wpilibC++Devices/include/NetworkCommunication/CANInterfacePlugin.h +++ b/wpilibc/wpilibC++Devices/include/NetworkCommunication/CANInterfacePlugin.h @@ -51,6 +51,7 @@ public: */ virtual int32_t receiveMessage(uint32_t &messageID, uint8_t *data, uint8_t &dataSize) = 0; +#if defined(__linux) /** * This entry-point of the CANInterfacePlugin returns status of the CAN bus. * @@ -67,6 +68,7 @@ public: * @return This should return 0 if all status was retrieved successfully or an error code if not. */ virtual int32_t getStatus(uint32_t &busOffCount, uint32_t &txFullCount, uint32_t &receiveErrorCount, uint32_t &transmitErrorCount) {return 0;} +#endif }; /** diff --git a/wpilibc/wpilibC++Devices/include/NetworkCommunication/CANSessionMux.h b/wpilibc/wpilibC++Devices/include/NetworkCommunication/CANSessionMux.h index 81f63c579f..3f8a6f192f 100644 --- a/wpilibc/wpilibC++Devices/include/NetworkCommunication/CANSessionMux.h +++ b/wpilibc/wpilibC++Devices/include/NetworkCommunication/CANSessionMux.h @@ -26,6 +26,7 @@ #define WARN_CANSessionMux_NoToken 44087 #define ERR_CANSessionMux_NotAllowed -44088 #define ERR_CANSessionMux_NotInitialized -44089 +#define ERR_CANSessionMux_SessionOverrun 44050 struct tCANStreamMessage{ uint32_t messageID; diff --git a/wpilibc/wpilibC++Devices/include/NetworkCommunication/FRCComm.h b/wpilibc/wpilibC++Devices/include/NetworkCommunication/FRCComm.h index d542eca14b..d7081365a5 100644 --- a/wpilibc/wpilibC++Devices/include/NetworkCommunication/FRCComm.h +++ b/wpilibc/wpilibC++Devices/include/NetworkCommunication/FRCComm.h @@ -33,6 +33,7 @@ #endif #define ERR_FRCSystem_NetCommNotResponding -44049 +#define ERR_FRCSystem_NoDSConnection -44018 enum AllianceStationID_t { kAllianceStationID_red1, @@ -43,6 +44,13 @@ enum AllianceStationID_t { kAllianceStationID_blue3, }; +enum MatchType_t { + kMatchType_none, + kMatchType_practice, + kMatchType_qualification, + kMatchType_elimination, +}; + struct ControlWord_t { #ifndef __vxworks uint32_t enabled : 1; @@ -91,7 +99,7 @@ extern "C" { # if defined (__vxworks) void EXPORT_FUNC setNewDataSem(SEM_ID); # else - void EXPORT_FUNC setNewDataSem(pthread_mutex_t *); + void EXPORT_FUNC setNewDataSem(pthread_cond_t *); # endif #endif diff --git a/wpilibc/wpilibC++Devices/include/NetworkCommunication/UsageReporting.h b/wpilibc/wpilibC++Devices/include/NetworkCommunication/UsageReporting.h index 918ac5ae63..0ec2a3a4ea 100644 --- a/wpilibc/wpilibC++Devices/include/NetworkCommunication/UsageReporting.h +++ b/wpilibc/wpilibC++Devices/include/NetworkCommunication/UsageReporting.h @@ -68,7 +68,11 @@ namespace nUsageReporting kResourceType_HiTechnicColorSensor, kResourceType_HiTechnicAccel, kResourceType_HiTechnicCompass, - kResourceType_SRF08, + kResourceType_SRF08, + kResourceType_AnalogOutput, + kResourceType_VictorSP, + kResourceType_TalonSRX, + kResourceType_CANTalonSRX, } tResourceType; typedef enum diff --git a/wpilibc/wpilibC++Devices/src/AnalogOutput.cpp b/wpilibc/wpilibC++Devices/src/AnalogOutput.cpp index 502b35f57f..858edf5079 100644 --- a/wpilibc/wpilibC++Devices/src/AnalogOutput.cpp +++ b/wpilibc/wpilibC++Devices/src/AnalogOutput.cpp @@ -40,7 +40,7 @@ void AnalogOutput::InitAnalogOutput(uint32_t channel) { wpi_setErrorWithContext(status, getHALErrorMessage(status)); LiveWindow::GetInstance()->AddActuator("AnalogOutput", m_channel, this); - HALReport(HALUsageReporting::kResourceType_AnalogChannel, m_channel, 0); + HALReport(HALUsageReporting::kResourceType_AnalogOutput, m_channel); } /** diff --git a/wpilibc/wpilibC++Devices/src/CANTalon.cpp b/wpilibc/wpilibC++Devices/src/CANTalon.cpp index 1dd7b7ea9e..f79a218b9c 100644 --- a/wpilibc/wpilibC++Devices/src/CANTalon.cpp +++ b/wpilibc/wpilibC++Devices/src/CANTalon.cpp @@ -164,7 +164,6 @@ void CANTalon::Set(float value, uint8_t syncGroup) */ void CANTalon::Disable() { - // Until Modes other than throttle work, just disable by setting throttle to 0.0. m_impl->SetModeSelect((int)CANTalon::kDisabled); m_controlEnabled = false; } @@ -1171,6 +1170,7 @@ void CANTalon::ConfigFaultTime(float faultTime) void CANTalon::ApplyControlMode(CANSpeedController::ControlMode mode) { m_controlMode = mode; + HALReport(HALUsageReporting::kResourceType_CANTalonSRX, m_deviceNumber+1, mode); switch (mode) { case kPercentVbus: m_sendMode = kThrottle; diff --git a/wpilibc/wpilibC++Devices/src/TalonSRX.cpp b/wpilibc/wpilibC++Devices/src/TalonSRX.cpp index cc69358325..c473c0dc65 100644 --- a/wpilibc/wpilibC++Devices/src/TalonSRX.cpp +++ b/wpilibc/wpilibC++Devices/src/TalonSRX.cpp @@ -28,7 +28,7 @@ void TalonSRX::InitTalonSRX() { SetRaw(m_centerPwm); SetZeroLatch(); - HALReport(HALUsageReporting::kResourceType_Talon, GetChannel()); + HALReport(HALUsageReporting::kResourceType_TalonSRX, GetChannel()); LiveWindow::GetInstance()->AddActuator("TalonSRX", GetChannel(), this); } diff --git a/wpilibc/wpilibC++Devices/src/VictorSP.cpp b/wpilibc/wpilibC++Devices/src/VictorSP.cpp index dbb919e3a2..7d6f7c205d 100644 --- a/wpilibc/wpilibC++Devices/src/VictorSP.cpp +++ b/wpilibc/wpilibC++Devices/src/VictorSP.cpp @@ -29,7 +29,7 @@ void VictorSP::InitVictorSP() { SetRaw(m_centerPwm); SetZeroLatch(); - HALReport(HALUsageReporting::kResourceType_Talon, GetChannel()); + HALReport(HALUsageReporting::kResourceType_VictorSP, GetChannel()); LiveWindow::GetInstance()->AddActuator("VictorSP", GetChannel(), this); } diff --git a/wpilibj/wpilibJavaDevices/src/main/java/edu/wpi/first/wpilibj/AnalogOutput.java b/wpilibj/wpilibJavaDevices/src/main/java/edu/wpi/first/wpilibj/AnalogOutput.java index 832c993a6f..401aec1b38 100644 --- a/wpilibj/wpilibJavaDevices/src/main/java/edu/wpi/first/wpilibj/AnalogOutput.java +++ b/wpilibj/wpilibJavaDevices/src/main/java/edu/wpi/first/wpilibj/AnalogOutput.java @@ -60,7 +60,7 @@ public class AnalogOutput extends SensorBase implements LiveWindowSendable { HALUtil.checkStatus(status.asIntBuffer()); LiveWindow.addSensor("AnalogOutput", channel, this); - UsageReporting.report(tResourceType.kResourceType_AnalogChannel, channel, 1); + UsageReporting.report(tResourceType.kResourceType_AnalogOutput, channel); } /** diff --git a/wpilibj/wpilibJavaDevices/src/main/java/edu/wpi/first/wpilibj/CANTalon.java b/wpilibj/wpilibJavaDevices/src/main/java/edu/wpi/first/wpilibj/CANTalon.java index ddd731d841..b51f48f2ef 100644 --- a/wpilibj/wpilibJavaDevices/src/main/java/edu/wpi/first/wpilibj/CANTalon.java +++ b/wpilibj/wpilibJavaDevices/src/main/java/edu/wpi/first/wpilibj/CANTalon.java @@ -10,6 +10,8 @@ package edu.wpi.first.wpilibj; import edu.wpi.first.wpilibj.hal.CanTalonSRX; import edu.wpi.first.wpilibj.hal.CanTalonJNI; +import edu.wpi.first.wpilibj.communication.UsageReporting; +import edu.wpi.first.wpilibj.communication.FRCNetworkCommunicationsLibrary.tResourceType; import edu.wpi.first.wpilibj.hal.SWIGTYPE_p_double; import edu.wpi.first.wpilibj.hal.SWIGTYPE_p_int; import edu.wpi.first.wpilibj.hal.SWIGTYPE_p_uint32_t; @@ -456,6 +458,8 @@ public class CANTalon implements MotorSafety, PIDOutput, SpeedController { m_controlEnabled = false; // Disable until set() is called. m_impl.SetModeSelect(ControlMode.Disabled.value); + + UsageReporting.report(tResourceType.kResourceType_CANTalonSRX, m_deviceNumber + 1, controlMode.value); } public void changeControlMode(ControlMode controlMode) { if(m_controlMode == controlMode){ diff --git a/wpilibj/wpilibJavaDevices/src/main/java/edu/wpi/first/wpilibj/TalonSRX.java b/wpilibj/wpilibJavaDevices/src/main/java/edu/wpi/first/wpilibj/TalonSRX.java index 75d96507e4..f57eaa72a9 100644 --- a/wpilibj/wpilibJavaDevices/src/main/java/edu/wpi/first/wpilibj/TalonSRX.java +++ b/wpilibj/wpilibJavaDevices/src/main/java/edu/wpi/first/wpilibj/TalonSRX.java @@ -38,7 +38,7 @@ public class TalonSRX extends SafePWM implements SpeedController { setZeroLatch(); LiveWindow.addActuator("TalonSRX", getChannel(), this); - UsageReporting.report(tResourceType.kResourceType_Talon, getChannel()); + UsageReporting.report(tResourceType.kResourceType_TalonSRX, getChannel()); } /** diff --git a/wpilibj/wpilibJavaDevices/src/main/java/edu/wpi/first/wpilibj/VictorSP.java b/wpilibj/wpilibJavaDevices/src/main/java/edu/wpi/first/wpilibj/VictorSP.java index 3fabd29624..a8da1f1cda 100644 --- a/wpilibj/wpilibJavaDevices/src/main/java/edu/wpi/first/wpilibj/VictorSP.java +++ b/wpilibj/wpilibJavaDevices/src/main/java/edu/wpi/first/wpilibj/VictorSP.java @@ -37,7 +37,7 @@ public class VictorSP extends SafePWM implements SpeedController { setZeroLatch(); LiveWindow.addActuator("VictorSP", getChannel(), this); - UsageReporting.report(tResourceType.kResourceType_Talon, getChannel()); + UsageReporting.report(tResourceType.kResourceType_VictorSP, getChannel()); } /** diff --git a/wpilibj/wpilibJavaDevices/src/main/java/edu/wpi/first/wpilibj/communication/FRCNetworkCommunicationsLibrary.java b/wpilibj/wpilibJavaDevices/src/main/java/edu/wpi/first/wpilibj/communication/FRCNetworkCommunicationsLibrary.java index ab9ef98c1c..1b0cd6b0ec 100644 --- a/wpilibj/wpilibJavaDevices/src/main/java/edu/wpi/first/wpilibj/communication/FRCNetworkCommunicationsLibrary.java +++ b/wpilibj/wpilibJavaDevices/src/main/java/edu/wpi/first/wpilibj/communication/FRCNetworkCommunicationsLibrary.java @@ -157,6 +157,14 @@ public class FRCNetworkCommunicationsLibrary extends JNIWrapper { public static final int kResourceType_HiTechnicCompass = 47; /** native declaration : src\main\include\NetworkCommunication\UsageReporting.h:58 */ public static final int kResourceType_SRF08 = 48; + /** native declaration : src\main\include\NetworkCommunication\UsageReporting.h:59 */ + public static final int kResourceType_AnalogOutput = 49; + /** native declaration : src\main\include\NetworkCommunication\UsageReporting.h:60 */ + public static final int kResourceType_VictorSP = 50; + /** native declaration : src\main\include\NetworkCommunication\UsageReporting.h:61 */ + public static final int kResourceType_TalonSRX = 51; + /** native declaration : src\main\include\NetworkCommunication\UsageReporting.h:62 */ + public static final int kResourceType_CANTalonSRX = 52; }; /** * native declaration : src\main\include\NetworkCommunication\UsageReporting.h