/*----------------------------------------------------------------------------*/ /* 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.hpp" #include #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"