Squashed 'third_party/allwpilib_2016/' content from commit 7f61816

Change-Id: If9d9245880859cdf580f5d7f77045135d0521ce7
git-subtree-dir: third_party/allwpilib_2016
git-subtree-split: 7f618166ed253a24629934fcf89c3decb0528a3b
diff --git a/hal/lib/Athena/PDP.cpp b/hal/lib/Athena/PDP.cpp
new file mode 100644
index 0000000..26fb4f6
--- /dev/null
+++ b/hal/lib/Athena/PDP.cpp
@@ -0,0 +1,71 @@
+#include "HAL/PDP.hpp"
+#include "ctre/PDP.h"
+//static PDP pdp;
+
+static const int NUM_MODULE_NUMBERS = 63;
+
+static PDP *pdp[NUM_MODULE_NUMBERS] = { NULL };
+
+void initializePDP(uint8_t module) {
+	if(!pdp[module]) {
+		pdp[module] = new PDP(module);
+	}
+}
+
+double getPDPTemperature(uint8_t module, int32_t *status) {
+	double temperature;
+
+	*status = pdp[module]->GetTemperature(temperature);
+
+	return temperature;
+}
+
+double getPDPVoltage(uint8_t module, int32_t *status) {
+	double voltage;
+
+	*status = pdp[module]->GetVoltage(voltage);
+
+	return voltage;
+}
+
+double getPDPChannelCurrent(uint8_t module, uint8_t channel, int32_t *status) {
+	double current;
+
+	*status = pdp[module]->GetChannelCurrent(channel, current);
+
+	return current;
+}
+
+double getPDPTotalCurrent(uint8_t module, int32_t *status) {
+	double current;
+
+	*status = pdp[module]->GetTotalCurrent(current);
+
+	return current;
+}
+
+double getPDPTotalPower(uint8_t module, int32_t *status) {
+	double power;
+
+	*status = pdp[module]->GetTotalPower(power);
+
+	return power;
+}
+
+double getPDPTotalEnergy(uint8_t module, int32_t *status) {
+	double energy;
+
+	*status = pdp[module]->GetTotalEnergy(energy);
+
+	return energy;
+}
+
+void resetPDPTotalEnergy(uint8_t module, int32_t *status) {
+	*status = pdp[module]->ResetEnergy();
+}
+
+void clearPDPStickyFaults(uint8_t module, int32_t *status) {
+	*status = pdp[module]->ClearStickyFaults();
+}
+
+