Skip to content

Commit 16b6933

Browse files
committed
mod: naming convention
1 parent f2f0473 commit 16b6933

File tree

4 files changed

+65
-48
lines changed

4 files changed

+65
-48
lines changed

desired.ino

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,20 @@ void setup() {
1111
// ERRORE ignorato
1212
Bridge.provide("greet", greet); // -> rpc.call("$/register", res, "greet");
1313

14+
Bridge.provide("get_index", get_index);
1415
// metodi forniti con provide possono ricevere anche notifiche (semplicemente il risultato non viene restituito)
16+
17+
Bridge.provide_safe("get_index", get_index);
18+
}
19+
20+
int index;
21+
22+
int get_index() {
23+
return index;
1524
}
1625

26+
27+
1728
bool set_led(bool state) {
1829
digitalWrite(LED_BUILTIN, state);
1930
return state;
@@ -28,6 +39,9 @@ String greet() {
2839
}
2940

3041
void loop() {
42+
43+
index++;
44+
3145
float res;
3246
if (!Bridge.call("multiply", res, 1.0, 2.0)) {
3347
// ERRORE!
@@ -36,5 +50,5 @@ void loop() {
3650
Bridge.notify("signal", 200);
3751

3852
// update viene chiamato automaticamente in un thread separato
39-
// Bridge.update(); -> server.run();
53+
Bridge.update(); // -> server->run();
4054
}
Lines changed: 23 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,18 @@
11
#include <Arduino_BridgeImola.h>
22

3-
Bridge bridge(Serial1);
3+
4+
bool set_led(bool state) {
5+
digitalWrite(LED_BUILTIN, state);
6+
return state;
7+
}
8+
9+
int add(int a, int b) {
10+
return a + b;
11+
}
12+
13+
String greet() {
14+
return String("Hello Friend");
15+
}
416

517
void setup() {
618
Serial.begin(115200);
@@ -11,48 +23,35 @@ void setup() {
1123

1224
pinMode(LED_BUILTIN, OUTPUT);
1325

14-
if (!bridge.begin()) {
15-
Serial.println("Error initializing bridge");
26+
if (!Bridge.begin()) {
27+
Serial.println("Error initializing Bridge");
1628
while(1);
1729
} else {
1830
Serial.println("Bridge initialized successfully");
1931
}
2032

21-
if (!bridge.provide("set_led", set_led)) {
33+
if (!Bridge.provide("set_led", set_led)) {
2234
Serial.println("Error providing method: set_led");
2335
} else {
2436
Serial.println("Registered method: set_led");
2537
}
2638

27-
bridge.provide("add", add);
39+
Bridge.provide("add", add);
2840

29-
bridge.provide("greet", greet);
41+
Bridge.provide("greet", greet);
3042

3143
}
3244

33-
bool set_led(bool state) {
34-
digitalWrite(LED_BUILTIN, state);
35-
return state;
36-
}
37-
38-
int add(int a, int b) {
39-
return a + b;
40-
}
41-
42-
String greet() {
43-
return String("Hello Friend");
44-
}
45-
4645
void loop() {
4746
float res;
48-
if (!bridge.call("multiply", res, 1.0, 2.0)) {
47+
if (!Bridge.call("multiply", res, 1.0, 2.0)) {
4948
Serial.println("Error calling method: multiply");
50-
Serial.println(bridge.get_error_code());
51-
Serial.println(bridge.get_error_message());
49+
Serial.println(Bridge.get_error_code());
50+
Serial.println(Bridge.get_error_message());
5251
delay(1000);
5352
};
5453

55-
bridge.notify("signal", 200);
54+
Bridge.notify("signal", 200);
5655

57-
bridge.update();
56+
//Bridge.update();
5857
}

examples/zephyr_thread/zephyr_thread.ino

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33

44
void setup() {
5-
BRIDGE.begin();
5+
Bridge.begin();
66
}
77

88
void loop() {

src/bridge.h

Lines changed: 26 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
#include <Arduino_RPClite.h>
1414

1515

16-
class Bridge {
16+
class BridgeClass {
1717

1818
RPCClient* client = nullptr;
1919
RPCServer* server = nullptr;
@@ -23,9 +23,9 @@ class Bridge {
2323
struct k_mutex write_mutex;
2424

2525
public:
26-
Bridge(ITransport& t) : transport(&t) {}
26+
BridgeClass(ITransport& t) : transport(&t) {}
2727

28-
Bridge(Stream& stream) {
28+
BridgeClass(Stream& stream) {
2929
transport = new SerialTransport(stream);
3030
}
3131

@@ -63,17 +63,19 @@ class Bridge {
6363

6464
void update() {
6565

66-
k_msleep(1);
6766
// Lock read mutex
68-
k_mutex_lock(&read_mutex, K_FOREVER);
69-
if (!server->get_rpc()) {
67+
while(1){
68+
k_mutex_lock(&read_mutex, K_FOREVER);
69+
if (server->get_rpc()) {
70+
k_mutex_unlock(&read_mutex);
71+
break;
72+
}
7073
k_mutex_unlock(&read_mutex);
71-
return;
74+
k_msleep(1);
7275
}
73-
k_mutex_unlock(&read_mutex);
7476

7577
server->process_request();
76-
78+
7779
// Lock write mutex
7880
k_mutex_lock(&write_mutex, K_FOREVER);
7981
server->send_response();
@@ -122,46 +124,48 @@ class Bridge {
122124
void update_safe() {
123125

124126
// Lock read mutex
125-
k_msleep(1);
126-
k_mutex_lock(&read_mutex, K_FOREVER);
127-
if (!server->get_rpc()) {
127+
while(1){
128+
k_mutex_lock(&read_mutex, K_FOREVER);
129+
if (server->get_rpc()) {
130+
k_mutex_unlock(&read_mutex);
131+
break;
132+
}
128133
k_mutex_unlock(&read_mutex);
129-
return;
134+
k_msleep(1);
130135
}
131-
k_mutex_unlock(&read_mutex);
132136

133137
server->process_request("__safe__");
134-
138+
135139
// Lock write mutex
136140
k_mutex_lock(&write_mutex, K_FOREVER);
137141
server->send_response();
138142
k_mutex_unlock(&write_mutex);
139143

140144
}
141145

142-
friend class BridgeUpdater;
146+
friend class BridgeClassUpdater;
143147

144148
};
145149

146-
class BridgeUpdater {
150+
class BridgeClassUpdater {
147151
public:
148-
static void safeUpdate(Bridge& bridge) {
152+
static void safeUpdate(BridgeClass& bridge) {
149153
bridge.update_safe(); // access private method
150154
}
151155

152156
private:
153-
BridgeUpdater() = delete; // prevents instantiation
157+
BridgeClassUpdater() = delete; // prevents instantiation
154158
};
155159

156-
Bridge BRIDGE(Serial1);
160+
BridgeClass Bridge(Serial1);
157161

158162
static void safeUpdate(){
159-
BridgeUpdater::safeUpdate(BRIDGE);
163+
BridgeClassUpdater::safeUpdate(Bridge);
160164
}
161165

162166

163167
void updateEntryPoint(void *, void *, void *){
164-
BRIDGE.update();
168+
Bridge.update();
165169
}
166170

167171
static k_tid_t upd_tid;

0 commit comments

Comments
 (0)