Skip to content

Commit 6dab8e7

Browse files
authored
Merge leads_vec_power/Pedal and leads_vec_wsc/Accelerometer into LEADS-Arduino (#8)
* Added `Accelerometer` and `Pedal`. (#482) * Updated keywords.txt and `Accelerometer`. (#482) * Updated exports. (#482) * Bug fixed. (#482)
1 parent 84105d1 commit 6dab8e7

File tree

6 files changed

+70
-0
lines changed

6 files changed

+70
-0
lines changed

keywords.txt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,10 @@ Device KEYWORD1
44
VoltageSensor KEYWORD1
55
OnWheelSpeedSensorUpdate KEYWORD1
66
WheelSpeedSensor KEYWORD1
7+
Acceleration KEYWORD1
8+
OnAccelerometerUpdate KEYWORD1
9+
Accelerometer KEYWORD1
10+
Pedal KEYWORD1
711
Peer KEYWORD1
812
returnString KEYWORD2
913
returnFloat KEYWORD2

src/Accelerometer.cpp

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
#include "Accelerometer.h"
2+
3+
String Acceleration::toString() {
4+
return String(yaw) + "," + pitch + "," + roll + "," + forwardAcceleration + "," + lateralAcceleration + "," +
5+
verticalAcceleration;
6+
}
7+
8+
Accelerometer::Accelerometer(OnAccelerometerUpdate onUpdate) : _onUpdate(onUpdate) {}
9+
10+
void Accelerometer::initialize(const ArrayList<String> &parentTags) { Device<Acceleration>::initialize(parentTags); }

src/Accelerometer.h

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
#ifndef ACCELEROMETER_H
2+
#define ACCELEROMETER_H
3+
4+
5+
#include "Device.h"
6+
7+
struct Acceleration {
8+
float yaw = 0, pitch = 0, roll = 0;
9+
float forwardAcceleration = 0, lateralAcceleration = 0, verticalAcceleration = 0;
10+
String toString();
11+
};
12+
13+
typedef void (*OnAccelerometerUpdate)(Acceleration acceleration);
14+
15+
class Accelerometer : public Device<Acceleration> {
16+
protected:
17+
const OnAccelerometerUpdate _onUpdate;
18+
19+
public:
20+
explicit Accelerometer(OnAccelerometerUpdate onUpdate);
21+
void initialize(const ArrayList<String> &parentTags) override;
22+
};
23+
24+
25+
#endif // ACCELEROMETER_H

src/LEADS.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
1+
#include "Accelerometer.h"
12
#include "Controller.h"
23
#include "Device.h"
34
#include "Memory.h"
5+
#include "Pedal.h"
46
#include "Peer.h"
57
#include "PredefinedTags.h"
68
#include "Utils.h"

src/Pedal.cpp

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
#include "Pedal.h"
2+
3+
Pedal::Pedal(const ArrayList<int> &pins, float restValue, float maxValue) :
4+
Device<float>(pins), _restValue(restValue), _maxValue(maxValue) {}
5+
6+
void Pedal::initialize(const ArrayList<String> &parentTags) {
7+
Device<float>::initialize(parentTags);
8+
pinMode(_pins[0], INPUT);
9+
}
10+
11+
float Pedal::read() { return ((float) analogRead(_pins[0]) / 1023 - _restValue) / _maxValue; }

src/Pedal.h

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
#ifndef PEDAL_H
2+
#define PEDAL_H
3+
4+
5+
#include "Device.h"
6+
7+
class Pedal : public Device<float> {
8+
protected:
9+
float _restValue, _maxValue;
10+
11+
public:
12+
Pedal(const ArrayList<int> &pins, float restValue, float maxValue);
13+
void initialize(const ArrayList<String> &parentTags) override;
14+
float read() override;
15+
};
16+
17+
18+
#endif // PEDAL_H

0 commit comments

Comments
 (0)