Added BuiltInAccelerometer in Java and updated C++

Change-Id: I5a3360c51334e85da6a15fd640f9420bc3b64dca
This commit is contained in:
thomasclark
2014-07-21 10:07:46 -04:00
parent be106b3527
commit 6053a0cc24
7 changed files with 214 additions and 16 deletions

View File

@@ -6,13 +6,14 @@
#pragma once
#include "SensorBase.h"
#include "LiveWindow/LiveWindowSendable.h"
/**
* Built-in accelerometer.
*
* This class allows access to the RoboRIO's internal accelerometer.
*/
class BuiltInAccelerometer : public SensorBase
class BuiltInAccelerometer : public SensorBase, public LiveWindowSendable
{
public:
enum Range
@@ -22,9 +23,18 @@ public:
kRange_8G = 0x02,
};
BuiltInAccelerometer(Range range = kRange_2G);
virtual ~BuiltInAccelerometer();
BuiltInAccelerometer(Range range = kRange_8G);
virtual double GetX() const;
virtual double GetY() const;
virtual double GetZ() const;
virtual std::string GetSmartDashboardType();
virtual void InitTable(ITable *subtable);
virtual void UpdateTable();
virtual ITable* GetTable();
virtual void StartLiveWindowMode() {}
virtual void StopLiveWindowMode() {}
private:
ITable *m_table;
};

View File

@@ -19,6 +19,7 @@
#include "AnalogModule.h"
#include "AnalogTrigger.h"
#include "AnalogTriggerOutput.h"
#include "BuiltInAccelerometer.h"
#include "Buttons/AnalogIOButton.h"
#include "Buttons/DigitalIOButton.h"
#include "Buttons/InternalButton.h"

View File

@@ -12,6 +12,7 @@
* @param range The range the accelerometer will measure
*/
BuiltInAccelerometer::BuiltInAccelerometer(Range range)
: m_table(0)
{
setAccelerometerActive(false);
setAccelerometerRange((AccelerometerRange)range);
@@ -20,14 +21,6 @@ BuiltInAccelerometer::BuiltInAccelerometer(Range range)
HALReport(HALUsageReporting::kResourceType_Accelerometer, 0, 0, "Built-in accelerometer");
}
/**
* Destructor.
*/
BuiltInAccelerometer::~BuiltInAccelerometer()
{
setAccelerometerActive(false);
}
/**
* @return The acceleration of the RoboRIO along the X axis in g-forces
*/
@@ -51,3 +44,24 @@ double BuiltInAccelerometer::GetZ() const
{
return getAccelerometerZ();
}
std::string BuiltInAccelerometer::GetSmartDashboardType() {
return "Accelerometer";
}
void BuiltInAccelerometer::InitTable(ITable *subtable) {
m_table = subtable;
UpdateTable();
}
void BuiltInAccelerometer::UpdateTable() {
if (m_table != NULL) {
m_table->PutNumber("X", GetX());
m_table->PutNumber("Y", GetY());
m_table->PutNumber("Z", GetZ());
}
}
ITable* BuiltInAccelerometer::GetTable() {
return m_table;
}