WPILibC++  unspecified
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Pages
SolenoidBase.h
1 /*----------------------------------------------------------------------------*/
2 /* Copyright (c) FIRST 2008-2016. All Rights Reserved. */
3 /* Open Source Software - may be modified and shared by FRC teams. The code */
4 /* must be accompanied by the FIRST BSD license file in the root directory of */
5 /* the project. */
6 /*----------------------------------------------------------------------------*/
7 
8 #pragma once
9 
10 #include "Resource.h"
11 #include "SensorBase.h"
12 #include "HAL/HAL.hpp"
13 #include "HAL/Port.h"
14 
15 #include <memory>
16 
21 class SolenoidBase : public SensorBase {
22  public:
23  virtual ~SolenoidBase() = default;
24  uint8_t GetAll(int module = 0) const;
25 
26  uint8_t GetPCMSolenoidBlackList(int module) const;
27  bool GetPCMSolenoidVoltageStickyFault(int module) const;
28  bool GetPCMSolenoidVoltageFault(int module) const;
29  void ClearAllPCMStickyFaults(int module);
30 
31  protected:
32  explicit SolenoidBase(uint8_t pcmID);
33  void Set(uint8_t value, uint8_t mask, int module);
34  const static int m_maxModules = 63;
35  const static int m_maxPorts = 8;
36  static void* m_ports[m_maxModules][m_maxPorts];
37  uint32_t m_moduleNumber;
38  static std::unique_ptr<Resource> m_allocated;
40 };
bool GetPCMSolenoidVoltageFault(int module) const
Definition: SolenoidBase.cpp:85
void Set(uint8_t value, uint8_t mask, int module)
Set the value of a solenoid.
Definition: SolenoidBase.cpp:36
SolenoidBase(uint8_t pcmID)
Constructor.
Definition: SolenoidBase.cpp:18
uint8_t GetAll(int module=0) const
Read all 8 solenoids as a single byte.
Definition: SolenoidBase.cpp:51
Base class for all sensors.
Definition: SensorBase.h:20
uint32_t m_moduleNumber
Slot number where the module is plugged into the chassis.
Definition: SolenoidBase.h:37
uint8_t GetPCMSolenoidBlackList(int module) const
Reads complete solenoid blacklist for all 8 solenoids as a single byte.
Definition: SolenoidBase.cpp:67
void ClearAllPCMStickyFaults(int module)
Clear ALL sticky faults inside PCM that Compressor is wired to.
Definition: SolenoidBase.cpp:102
bool GetPCMSolenoidVoltageStickyFault(int module) const
Definition: SolenoidBase.cpp:76
SolenoidBase class is the common base class for the Solenoid and DoubleSolenoid classes.
Definition: SolenoidBase.h:21