Now you can download a copy of these docs so you can use them offline! Download now
Accelerometer.cpp
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 #include "Accelerometer.h"
8 #include "AnalogModule.h"
9 #include "NetworkCommunication/UsageReporting.h"
10 #include "WPIErrors.h"
11 #include "LiveWindow/LiveWindow.h"
12 
16 void Accelerometer::InitAccelerometer()
17 {
18  m_table = NULL;
19  m_voltsPerG = 1.0;
20  m_zeroGVoltage = 2.5;
21  nUsageReporting::report(nUsageReporting::kResourceType_Accelerometer, m_analogChannel->GetChannel(), m_analogChannel->GetModuleNumber() - 1);
22  LiveWindow::GetInstance()->AddSensor("Accelerometer", m_analogChannel->GetModuleNumber(), m_analogChannel->GetChannel(), this);
23 }
24 
32 {
33  m_analogChannel = new AnalogChannel(channel);
34  m_allocatedChannel = true;
35  InitAccelerometer();
36 }
37 
47 Accelerometer::Accelerometer(uint8_t moduleNumber, uint32_t channel)
48 {
49  m_analogChannel = new AnalogChannel(moduleNumber, channel);
50  m_allocatedChannel = true;
51  InitAccelerometer();
52 }
53 
61 {
62  if (channel == NULL)
63  {
64  wpi_setWPIError(NullParameter);
65  }
66  else
67  {
68  m_analogChannel = channel;
69  InitAccelerometer();
70  }
71  m_allocatedChannel = false;
72 }
73 
78 {
79  if (m_allocatedChannel)
80  {
81  delete m_analogChannel;
82  }
83 }
84 
93 {
94  return (m_analogChannel->GetAverageVoltage() - m_zeroGVoltage) / m_voltsPerG;
95 }
96 
105 void Accelerometer::SetSensitivity(float sensitivity)
106 {
107  m_voltsPerG = sensitivity;
108 }
109 
117 void Accelerometer::SetZero(float zero)
118 {
119  m_zeroGVoltage = zero;
120 }
121 
128 {
129  return GetAcceleration();
130 }
131 
133  if (m_table != NULL) {
134  m_table->PutNumber("Value", GetAcceleration());
135  }
136 }
137 
139 }
140 
142 }
143 
145  return "Accelerometer";
146 }
147 
149  m_table = subTable;
150  UpdateTable();
151 }
152 
154  return m_table;
155 }
156 
uint32_t GetChannel()
virtual void PutNumber(std::string key, double value)=0
Definition: ITable.h:26
uint8_t GetModuleNumber()
void InitTable(ITable *subTable)
void StopLiveWindowMode()
void AddSensor(const char *subsystem, const char *name, LiveWindowSendable *component)
Definition: LiveWindow.cpp:82
float GetAverageVoltage()
static LiveWindow * GetInstance()
Definition: LiveWindow.cpp:13
void StartLiveWindowMode()
float GetAcceleration()
void SetZero(float zero)
virtual ~Accelerometer()
std::string GetSmartDashboardType()
ITable * GetTable()
void SetSensitivity(float sensitivity)
Accelerometer(uint32_t channel)

Generated on Sat Apr 26 2014 12:26:45 for WPILibC++ by doxygen 1.8.6