Skip to content

Commit 5c90c44

Browse files
authored
Support Serial Port Identification (#5)
* Supported identity check during `refresh()`. (#362) * Defaulted the initial capacity to 0. (#362) * Added `POWER_CONTROLLER` and `WHEEL_SPEED_CONTROLLER`. (#362) (#368)
1 parent 0116b7b commit 5c90c44

File tree

6 files changed

+20
-10
lines changed

6 files changed

+20
-10
lines changed

keywords.txt

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,4 +22,6 @@ MOTOR_CONTROLLER LITERAL1
2222
BRAKE_CONTROLLER LITERAL1
2323
GPS_RECEIVER LITERAL1
2424
LEFT_INDICATOR LITERAL1
25-
RIGHT_INDICATOR LITERAL1
25+
RIGHT_INDICATOR LITERAL1
26+
POWER_CONTROLLER LITERAL1
27+
WHEEL_SPEED_CONTROLLER LITERAL1

src/ArrayList.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ class ArrayList {
2626
void ensureCapacityInternal(size_t minCapacity) { ensureExplicitCapacity(max(10, minCapacity)); }
2727

2828
public:
29-
explicit ArrayList(size_t initialCapacity = 10) :
29+
explicit ArrayList(size_t initialCapacity = 0) :
3030
_size(0), _capacity(initialCapacity), _array(new E[initialCapacity]) {}
3131
ArrayList(E const *const initialArray, size_t size) : _size(size), _capacity(size), _array(new E[size]) {
3232
arraycopy(initialArray, _array, size);

src/Device.h

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ template<typename T>
88
class Device {
99
protected:
1010
String _tag = "";
11-
ArrayList<String> _parentTags = ArrayList<String>(0);
11+
ArrayList<String> _parentTags = ArrayList<String>();
1212
ArrayList<int> _pins;
1313

1414
public:
@@ -20,9 +20,9 @@ class Device {
2020
String tag() { return _tag; }
2121
const ArrayList<String> &parentTags() { return _parentTags; }
2222
virtual void initialize(const ArrayList<String> &parentTags) { _parentTags = parentTags; }
23-
void initializeAsRoot() { initialize(ArrayList<String>(0)); }
23+
void initializeAsRoot() { initialize(ArrayList<String>()); }
2424
virtual T read() { return T(); }
25-
virtual void write(T payload) {}
25+
virtual void write(const T &payload) {}
2626
virtual void update(T data) {}
2727
virtual void close() {}
2828
};

src/Peer.cpp

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,11 @@
22

33

44
// std::move() is not available in the C library
5-
Peer::Peer(unsigned int baudRate, const String &separator, const String &remainder) : // NOLINT(*-pass-by-value)
6-
Controller<String, String>(), _baudRate(baudRate), _separator(separator), _remainder(remainder) {}
5+
Peer::Peer(const String &tag, unsigned int baudRate, const String &separator, // NOLINT(*-pass-by-value)
6+
const String &remainder) : // NOLINT(*-pass-by-value)
7+
Controller<String, String>(), _baudRate(baudRate), _separator(separator), _remainder(remainder) {
8+
_tag = tag;
9+
}
710
void Peer::initialize(const ArrayList<String> &parentTags) {
811
Controller<String, String>::initialize(parentTags);
912
Serial.begin(_baudRate);
@@ -20,11 +23,13 @@ String Peer::read() {
2023
}
2124
return "";
2225
}
23-
void Peer::write(String payload) { Serial.print(payload + _separator); }
26+
void Peer::write(const String &payload) { Serial.print(payload + _separator); }
2427
void Peer::refresh() {
2528
String msg = read();
2629
if (msg == "")
2730
return;
31+
if (msg == "ic")
32+
return write(_tag);
2833
for (Device<String> d: _devices)
2934
d.update(msg);
3035
}

src/Peer.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,10 @@ class Peer : public Controller<String, String> {
1111
String _separator, _remainder;
1212

1313
public:
14-
explicit Peer(unsigned int baudRate = 9600, const String &separator = ";", const String &remainder = "");
14+
explicit Peer(const String& tag, unsigned int baudRate = 9600, const String &separator = ";", const String &remainder = "");
1515
void initialize(const ArrayList<String> &parentTags) override;
1616
String read() override;
17-
void write(String payload) override;
17+
void write(const String &payload) override;
1818
void refresh();
1919
};
2020

src/PredefinedTags.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,5 +18,8 @@
1818
#define LEFT_INDICATOR "lindi"
1919
#define RIGHT_INDICATOR "rindi"
2020

21+
#define POWER_CONTROLLER "pc"
22+
#define WHEEL_SPEED_CONTROLLER "wsc"
23+
2124

2225
#endif // PREDEFINEDTAGS_H

0 commit comments

Comments
 (0)