Skip to content

Commit 4cc363c

Browse files
committed
feat: BridgeMonitor w example TBT
1 parent b9bb71f commit 4cc363c

File tree

4 files changed

+111
-0
lines changed

4 files changed

+111
-0
lines changed

examples/monitor/monitor.ino

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
#include <Arduino_RouterBridge.h>
2+
3+
bool set_led(bool state) {
4+
digitalWrite(LED_BUILTIN, state);
5+
return state;
6+
}
7+
8+
int add(int a, int b) {
9+
return a + b;
10+
}
11+
12+
String greet() {
13+
return String("Hello Friend");
14+
}
15+
16+
void setup() {
17+
Serial.begin(115200);
18+
while (!Serial);
19+
20+
if (!Bridge.begin()) {
21+
Serial.println("cannot setup Bridge");
22+
}
23+
24+
if(!Monitor.begin()){
25+
Serial.println("cannot setup Monitor");
26+
}
27+
28+
pinMode(LED_BUILTIN, OUTPUT);
29+
30+
if (!Bridge.provide("set_led", set_led)) {
31+
Serial.println("Error providing method: set_led");
32+
} else {
33+
Serial.println("Registered method: set_led");
34+
}
35+
36+
Bridge.provide("add", add);
37+
38+
}
39+
40+
void loop() {
41+
float res;
42+
if (!Bridge.call("multiply", res, 1.0, 2.0)) {
43+
Serial.println("Error calling method: multiply");
44+
Serial.println(Bridge.get_error_code());
45+
Serial.println(Bridge.get_error_message());
46+
};
47+
48+
Bridge.notify("signal", 200);
49+
50+
Monitor.write("DEBUG: a debug message");
51+
52+
Bridge.update();
53+
}

examples/simple_bridge/simple_bridge.ino

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,8 @@ void setup() {
2121

2222
pinMode(LED_BUILTIN, OUTPUT);
2323

24+
Bridge.begin();
25+
2426
if (!Bridge.provide("set_led", set_led)) {
2527
Serial.println("Error providing method: set_led");
2628
} else {

src/Arduino_RouterBridge.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,5 +3,6 @@
33

44
#include "Arduino.h"
55
#include "bridge.h"
6+
#include "monitor.h"
67

78
#endif //ARDUINO_ROUTER_BRIDGE_H

src/monitor.h

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
#pragma once
2+
3+
#ifndef BRIDGE_MONITOR_H
4+
#define BRIDGE_MONITOR_H
5+
6+
#include "bridge.h"
7+
8+
#define MON_CONNECTED_METHOD "mon/connected"
9+
#define MON_RESET_METHOD "mon/reset"
10+
#define MON_READ_METHOD "mon/read"
11+
#define MON_WRITE_METHOD "mon/write"
12+
13+
14+
15+
class BridgeMonitor {
16+
17+
BridgeClass& _bridge;
18+
19+
public:
20+
BridgeMonitor(BridgeClass& bridge): _bridge(bridge) {}
21+
22+
bool begin() {
23+
return _bridge.call(MON_CONNECTED_METHOD, is_connected);
24+
}
25+
26+
bool reset() {
27+
bool res;
28+
bool ok = _bridge.call(MON_RESET_METHOD, res);
29+
if (ok && res) {
30+
is_connected = false;
31+
}
32+
return (ok && res);
33+
}
34+
35+
size_t write(String message) {
36+
size_t size;
37+
bool ok = _bridge.call(MON_WRITE_METHOD, size, message);
38+
39+
if (!ok) return 0;
40+
41+
return size;
42+
}
43+
44+
bool read(String& message, size_t size) {
45+
return _bridge.call(MON_READ_METHOD, message, size);
46+
}
47+
48+
bool is_connected = false;
49+
50+
};
51+
52+
extern BridgeClass Bridge;
53+
BridgeMonitor Monitor(Bridge);
54+
55+
#endif // BRIDGE_MONITOR_H

0 commit comments

Comments
 (0)