Skip to content

Commit 49d5a77

Browse files
committed
fix: Monitor begin alone crashes. mod: minor UNDER TESTING
1 parent 4a2b70e commit 49d5a77

File tree

2 files changed

+11
-17
lines changed

2 files changed

+11
-17
lines changed

src/bridge.h

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ class BridgeClass {
3333
RPCClient* client = nullptr;
3434
RPCServer* server = nullptr;
3535
HardwareSerial* serial_ptr = nullptr;
36-
ITransport* transport;
36+
ITransport* transport = nullptr;
3737

3838
struct k_mutex read_mutex;
3939
struct k_mutex write_mutex;
@@ -48,16 +48,16 @@ class BridgeClass {
4848

4949
BridgeClass(HardwareSerial& serial) {
5050
serial_ptr = &serial;
51-
transport = new SerialTransport(serial);
5251
}
5352

54-
operator bool() const {
53+
explicit operator bool() const {
5554
return started;
5655
}
5756

5857
// Initialize the bridge
5958
bool begin(unsigned long baud=DEFAULT_SERIAL_BAUD) {
6059
serial_ptr->begin(baud);
60+
transport = new SerialTransport(*serial_ptr);
6161

6262
k_mutex_init(&read_mutex);
6363
k_mutex_init(&write_mutex);
@@ -175,11 +175,11 @@ class BridgeClass {
175175
}
176176

177177
String get_error_message() const {
178-
return (String) client->lastError.traceback;
178+
return static_cast<String>(client->lastError.traceback);
179179
}
180180

181181
uint8_t get_error_code() const {
182-
return (uint8_t) client->lastError.code;
182+
return static_cast<uint8_t>(client->lastError.code);
183183
}
184184

185185
private:
@@ -235,7 +235,7 @@ class BridgeClassUpdater {
235235
BridgeClass Bridge(Serial1);
236236

237237
void updateEntryPoint(void *, void *, void *){
238-
while (1) {
238+
while (true) {
239239
if (Bridge) {
240240
Bridge.update();
241241
}

src/monitor.h

Lines changed: 5 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -36,9 +36,11 @@ class BridgeMonitor: public Stream {
3636
public:
3737
BridgeMonitor(BridgeClass& bridge): bridge(&bridge) {}
3838

39+
using Print::write;
40+
3941
bool begin() {
4042
k_mutex_init(&monitor_mutex);
41-
if (!bridge) {
43+
if (!(*bridge)) {
4244
bridge->begin();
4345
}
4446
return bridge->call(MON_CONNECTED_METHOD, is_connected);
@@ -80,6 +82,7 @@ class BridgeMonitor: public Stream {
8082
return temp_buffer.peek();
8183
}
8284
k_mutex_unlock(&monitor_mutex);
85+
return -1;
8386
}
8487

8588
size_t write(uint8_t c) override {
@@ -92,7 +95,7 @@ class BridgeMonitor: public Stream {
9295

9396
for (size_t i = 0; i < size; ++i) {
9497
#ifdef ARDUINO
95-
send_buffer += (char)buffer[i];
98+
send_buffer += static_cast<char>(buffer[i]);
9699
#else
97100
send_buffer.push_back(static_cast<char>(buffer[i]));
98101
#endif
@@ -116,15 +119,6 @@ class BridgeMonitor: public Stream {
116119
return (ok && res);
117120
}
118121

119-
size_t write(String message) {
120-
size_t size;
121-
bool ok = bridge->call(MON_WRITE_METHOD, size, message);
122-
123-
if (!ok) return 0;
124-
125-
return size;
126-
}
127-
128122
int _read(size_t size) {
129123

130124
if (size == 0) return 0;

0 commit comments

Comments
 (0)