WPILib  2014.0
WPIRoboticsLibraryforFRC
 All Classes Functions Variables Pages
DoubleSolenoid.h
1 /*----------------------------------------------------------------------------*/
2 /* Copyright (c) FIRST 2008. 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 $(WIND_BASE)/WPILib. */
5 /*----------------------------------------------------------------------------*/
6 
7 #ifndef DOUBLE_SOLENOID_H_
8 #define DOUBLE_SOLENOID_H_
9 
10 #include "SolenoidBase.h"
11 #include "LiveWindow/LiveWindowSendable.h"
12 #include "tables/ITableListener.h"
13 
14 
22 class DoubleSolenoid : public SolenoidBase, public LiveWindowSendable, public ITableListener {
23 public:
24  typedef enum {kOff, kForward, kReverse} Value;
25 
26  explicit DoubleSolenoid(uint32_t forwardChannel, uint32_t reverseChannel);
27  DoubleSolenoid(uint8_t moduleNumber, uint32_t forwardChannel, uint32_t reverseChannel);
28  virtual ~DoubleSolenoid();
29  virtual void Set(Value value);
30  virtual Value Get();
31 
32  void ValueChanged(ITable* source, const std::string& key, EntryValue value, bool isNew);
33  void UpdateTable();
34  void StartLiveWindowMode();
35  void StopLiveWindowMode();
36  std::string GetSmartDashboardType();
37  void InitTable(ITable *subTable);
38  ITable * GetTable();
39 
40 private:
41  virtual void InitSolenoid();
42 
43  uint32_t m_forwardChannel;
44  uint32_t m_reverseChannel;
45  uint8_t m_forwardMask;
46  uint8_t m_reverseMask;
47 
48  ITable *m_table;
49 };
50 
51 #endif
Definition: DoubleSolenoid.h:22
virtual void Set(Value value)
Definition: DoubleSolenoid.cpp:106
virtual Value Get()
Definition: DoubleSolenoid.cpp:132
DoubleSolenoid(uint32_t forwardChannel, uint32_t reverseChannel)
Definition: DoubleSolenoid.cpp:66
virtual ~DoubleSolenoid()
Definition: DoubleSolenoid.cpp:92
Definition: SolenoidBase.h:19