Skip to content

Commit 93c0180

Browse files
author
Scott Powell
committed
* Refactor: advert_loc_policy now applied in new method CommonCLI::buildAdvertData()
1 parent 837e7dc commit 93c0180

File tree

5 files changed

+18
-39
lines changed

5 files changed

+18
-39
lines changed

examples/simple_repeater/MyMesh.cpp

Lines changed: 1 addition & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -287,19 +287,7 @@ int MyMesh::handleRequest(ClientInfo *sender, uint32_t sender_timestamp, uint8_t
287287

288288
mesh::Packet *MyMesh::createSelfAdvert() {
289289
uint8_t app_data[MAX_ADVERT_DATA_SIZE];
290-
uint8_t app_data_len;
291-
{
292-
if (_prefs.advert_loc_policy == ADVERT_LOC_NONE) {
293-
AdvertDataBuilder builder(ADV_TYPE_REPEATER, _prefs.node_name);
294-
app_data_len = builder.encodeTo(app_data);
295-
} else if (_prefs.advert_loc_policy == ADVERT_LOC_SHARE) {
296-
AdvertDataBuilder builder(ADV_TYPE_REPEATER, _prefs.node_name, sensors.node_lat, sensors.node_lon);
297-
app_data_len = builder.encodeTo(app_data);
298-
} else {
299-
AdvertDataBuilder builder(ADV_TYPE_REPEATER, _prefs.node_name, _prefs.node_lat, _prefs.node_lon);
300-
app_data_len = builder.encodeTo(app_data);
301-
}
302-
}
290+
uint8_t app_data_len = _cli.buildAdvertData(ADV_TYPE_REPEATER, app_data);
303291

304292
return createAdvert(self_id, app_data, app_data_len);
305293
}

examples/simple_room_server/MyMesh.cpp

Lines changed: 1 addition & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -114,19 +114,7 @@ bool MyMesh::processAck(const uint8_t *data) {
114114

115115
mesh::Packet *MyMesh::createSelfAdvert() {
116116
uint8_t app_data[MAX_ADVERT_DATA_SIZE];
117-
uint8_t app_data_len;
118-
{
119-
if (_prefs.advert_loc_policy == ADVERT_LOC_NONE) {
120-
AdvertDataBuilder builder(ADV_TYPE_ROOM, _prefs.node_name);
121-
app_data_len = builder.encodeTo(app_data);
122-
} else if (_prefs.advert_loc_policy == ADVERT_LOC_SHARE) {
123-
AdvertDataBuilder builder(ADV_TYPE_ROOM, _prefs.node_name, sensors.node_lat, sensors.node_lon);
124-
app_data_len = builder.encodeTo(app_data);
125-
} else {
126-
AdvertDataBuilder builder(ADV_TYPE_ROOM, _prefs.node_name, _prefs.node_lat, _prefs.node_lon);
127-
app_data_len = builder.encodeTo(app_data);
128-
}
129-
}
117+
uint8_t app_data_len = _cli.buildAdvertData(ADV_TYPE_ROOM, app_data);
130118

131119
return createAdvert(self_id, app_data, app_data_len);
132120
}

examples/simple_sensor/SensorMesh.cpp

Lines changed: 1 addition & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -239,19 +239,7 @@ uint8_t SensorMesh::handleRequest(uint8_t perms, uint32_t sender_timestamp, uint
239239

240240
mesh::Packet* SensorMesh::createSelfAdvert() {
241241
uint8_t app_data[MAX_ADVERT_DATA_SIZE];
242-
uint8_t app_data_len;
243-
{
244-
if (_prefs.advert_loc_policy == ADVERT_LOC_NONE) {
245-
AdvertDataBuilder builder(ADV_TYPE_SENSOR, _prefs.node_name);
246-
app_data_len = builder.encodeTo(app_data);
247-
} else if (_prefs.advert_loc_policy == ADVERT_LOC_SHARE) {
248-
AdvertDataBuilder builder(ADV_TYPE_SENSOR, _prefs.node_name, sensors.node_lat, sensors.node_lon);
249-
app_data_len = builder.encodeTo(app_data);
250-
} else {
251-
AdvertDataBuilder builder(ADV_TYPE_SENSOR, _prefs.node_name, _prefs.node_lat, _prefs.node_lon);
252-
app_data_len = builder.encodeTo(app_data);
253-
}
254-
}
242+
uint8_t app_data_len = _cli.buildAdvertData(ADV_TYPE_SENSOR, app_data);
255243

256244
return createAdvert(self_id, app_data, app_data_len);
257245
}

src/helpers/CommonCLI.cpp

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
#include <Arduino.h>
22
#include "CommonCLI.h"
33
#include "TxtDataHelpers.h"
4+
#include "AdvertDataHelpers.h"
45
#include <RTClib.h>
56

67
// Believe it or not, this std C function is busted on some platforms!
@@ -160,6 +161,19 @@ void CommonCLI::savePrefs() {
160161
_callbacks->savePrefs();
161162
}
162163

164+
uint8_t CommonCLI::buildAdvertData(uint8_t node_type, uint8_t* app_data) {
165+
if (_prefs->advert_loc_policy == ADVERT_LOC_NONE) {
166+
AdvertDataBuilder builder(node_type, _prefs->node_name);
167+
return builder.encodeTo(app_data);
168+
} else if (_prefs->advert_loc_policy == ADVERT_LOC_SHARE) {
169+
AdvertDataBuilder builder(node_type, _prefs->node_name, sensors.node_lat, sensors.node_lon);
170+
return builder.encodeTo(app_data);
171+
} else {
172+
AdvertDataBuilder builder(node_type, _prefs->node_name, _prefs->node_lat, _prefs->node_lon);
173+
return builder.encodeTo(app_data);
174+
}
175+
}
176+
163177
void CommonCLI::handleCommand(uint32_t sender_timestamp, const char* command, char* reply) {
164178
if (memcmp(command, "reboot", 6) == 0) {
165179
_board->reboot(); // doesn't return

src/helpers/CommonCLI.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -98,4 +98,5 @@ class CommonCLI {
9898
void loadPrefs(FILESYSTEM* _fs);
9999
void savePrefs(FILESYSTEM* _fs);
100100
void handleCommand(uint32_t sender_timestamp, const char* command, char* reply);
101+
uint8_t buildAdvertData(uint8_t node_type, uint8_t* app_data);
101102
};

0 commit comments

Comments
 (0)