Files
allwpilib/hal/lib/athena/Compressor.cpp
Tyler Veness d82635bbe1 Reordered headers according to the style guide (#58)
Subsections are alphabetized according to lexographic ordering. Also, HAL includes were moved from headers to source files where possible. This change may cause user code which uses HAL functionality and does not include the relevant HAL header (since it may have been provided by another WPILib header) to fail to compile.
2016-05-25 22:38:11 -07:00

127 lines
3.1 KiB
C++

/*----------------------------------------------------------------------------*/
/* Copyright (c) FIRST 2016. All Rights Reserved. */
/* Open Source Software - may be modified and shared by FRC teams. The code */
/* must be accompanied by the FIRST BSD license file in the root directory of */
/* the project. */
/*----------------------------------------------------------------------------*/
#include "HAL/Compressor.h"
#include <iostream>
#include "ctre/PCM.h"
static const int NUM_MODULE_NUMBERS = 63;
extern PCM* PCM_modules[NUM_MODULE_NUMBERS];
extern void initializePCM(int module);
extern "C" {
void* initializeCompressor(uint8_t module) {
initializePCM(module);
return PCM_modules[module];
}
bool checkCompressorModule(uint8_t module) {
return module < NUM_MODULE_NUMBERS;
}
bool getCompressor(void* pcm_pointer, int32_t* status) {
PCM* module = (PCM*)pcm_pointer;
bool value;
*status = module->GetCompressor(value);
return value;
}
void setClosedLoopControl(void* pcm_pointer, bool value, int32_t* status) {
PCM* module = (PCM*)pcm_pointer;
*status = module->SetClosedLoopControl(value);
}
bool getClosedLoopControl(void* pcm_pointer, int32_t* status) {
PCM* module = (PCM*)pcm_pointer;
bool value;
*status = module->GetClosedLoopControl(value);
return value;
}
bool getPressureSwitch(void* pcm_pointer, int32_t* status) {
PCM* module = (PCM*)pcm_pointer;
bool value;
*status = module->GetPressure(value);
return value;
}
float getCompressorCurrent(void* pcm_pointer, int32_t* status) {
PCM* module = (PCM*)pcm_pointer;
float value;
*status = module->GetCompressorCurrent(value);
return value;
}
bool getCompressorCurrentTooHighFault(void* pcm_pointer, int32_t* status) {
PCM* module = (PCM*)pcm_pointer;
bool value;
*status = module->GetCompressorCurrentTooHighFault(value);
return value;
}
bool getCompressorCurrentTooHighStickyFault(void* pcm_pointer,
int32_t* status) {
PCM* module = (PCM*)pcm_pointer;
bool value;
*status = module->GetCompressorCurrentTooHighStickyFault(value);
return value;
}
bool getCompressorShortedStickyFault(void* pcm_pointer, int32_t* status) {
PCM* module = (PCM*)pcm_pointer;
bool value;
*status = module->GetCompressorShortedStickyFault(value);
return value;
}
bool getCompressorShortedFault(void* pcm_pointer, int32_t* status) {
PCM* module = (PCM*)pcm_pointer;
bool value;
*status = module->GetCompressorShortedFault(value);
return value;
}
bool getCompressorNotConnectedStickyFault(void* pcm_pointer, int32_t* status) {
PCM* module = (PCM*)pcm_pointer;
bool value;
*status = module->GetCompressorNotConnectedStickyFault(value);
return value;
}
bool getCompressorNotConnectedFault(void* pcm_pointer, int32_t* status) {
PCM* module = (PCM*)pcm_pointer;
bool value;
*status = module->GetCompressorNotConnectedFault(value);
return value;
}
void clearAllPCMStickyFaults(void* pcm_pointer, int32_t* status) {
PCM* module = (PCM*)pcm_pointer;
*status = module->ClearStickyFaults();
}
} // extern "C"