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