diff --git a/examples/simple_repeater/MyMesh.cpp b/examples/simple_repeater/MyMesh.cpp index eaf0fb2b..6c85b7e0 100644 --- a/examples/simple_repeater/MyMesh.cpp +++ b/examples/simple_repeater/MyMesh.cpp @@ -287,19 +287,7 @@ int MyMesh::handleRequest(ClientInfo *sender, uint32_t sender_timestamp, uint8_t mesh::Packet *MyMesh::createSelfAdvert() { uint8_t app_data[MAX_ADVERT_DATA_SIZE]; - uint8_t app_data_len; - { - if (_prefs.advert_loc_policy == ADVERT_LOC_NONE) { - AdvertDataBuilder builder(ADV_TYPE_REPEATER, _prefs.node_name); - app_data_len = builder.encodeTo(app_data); - } else if (_prefs.advert_loc_policy == ADVERT_LOC_SHARE) { - AdvertDataBuilder builder(ADV_TYPE_REPEATER, _prefs.node_name, sensors.node_lat, sensors.node_lon); - app_data_len = builder.encodeTo(app_data); - } else { - AdvertDataBuilder builder(ADV_TYPE_REPEATER, _prefs.node_name, _prefs.node_lat, _prefs.node_lon); - app_data_len = builder.encodeTo(app_data); - } - } + uint8_t app_data_len = _cli.buildAdvertData(ADV_TYPE_REPEATER, app_data); return createAdvert(self_id, app_data, app_data_len); } diff --git a/examples/simple_room_server/MyMesh.cpp b/examples/simple_room_server/MyMesh.cpp index b241788e..e4b57f98 100644 --- a/examples/simple_room_server/MyMesh.cpp +++ b/examples/simple_room_server/MyMesh.cpp @@ -114,19 +114,7 @@ bool MyMesh::processAck(const uint8_t *data) { mesh::Packet *MyMesh::createSelfAdvert() { uint8_t app_data[MAX_ADVERT_DATA_SIZE]; - uint8_t app_data_len; - { - if (_prefs.advert_loc_policy == ADVERT_LOC_NONE) { - AdvertDataBuilder builder(ADV_TYPE_ROOM, _prefs.node_name); - app_data_len = builder.encodeTo(app_data); - } else if (_prefs.advert_loc_policy == ADVERT_LOC_SHARE) { - AdvertDataBuilder builder(ADV_TYPE_ROOM, _prefs.node_name, sensors.node_lat, sensors.node_lon); - app_data_len = builder.encodeTo(app_data); - } else { - AdvertDataBuilder builder(ADV_TYPE_ROOM, _prefs.node_name, _prefs.node_lat, _prefs.node_lon); - app_data_len = builder.encodeTo(app_data); - } - } + uint8_t app_data_len = _cli.buildAdvertData(ADV_TYPE_ROOM, app_data); return createAdvert(self_id, app_data, app_data_len); } diff --git a/examples/simple_sensor/SensorMesh.cpp b/examples/simple_sensor/SensorMesh.cpp index d365f7fa..92ea1889 100644 --- a/examples/simple_sensor/SensorMesh.cpp +++ b/examples/simple_sensor/SensorMesh.cpp @@ -239,19 +239,7 @@ uint8_t SensorMesh::handleRequest(uint8_t perms, uint32_t sender_timestamp, uint mesh::Packet* SensorMesh::createSelfAdvert() { uint8_t app_data[MAX_ADVERT_DATA_SIZE]; - uint8_t app_data_len; - { - if (_prefs.advert_loc_policy == ADVERT_LOC_NONE) { - AdvertDataBuilder builder(ADV_TYPE_SENSOR, _prefs.node_name); - app_data_len = builder.encodeTo(app_data); - } else if (_prefs.advert_loc_policy == ADVERT_LOC_SHARE) { - AdvertDataBuilder builder(ADV_TYPE_SENSOR, _prefs.node_name, sensors.node_lat, sensors.node_lon); - app_data_len = builder.encodeTo(app_data); - } else { - AdvertDataBuilder builder(ADV_TYPE_SENSOR, _prefs.node_name, _prefs.node_lat, _prefs.node_lon); - app_data_len = builder.encodeTo(app_data); - } - } + uint8_t app_data_len = _cli.buildAdvertData(ADV_TYPE_SENSOR, app_data); return createAdvert(self_id, app_data, app_data_len); } diff --git a/src/helpers/CommonCLI.cpp b/src/helpers/CommonCLI.cpp index b0229f70..87f20f5a 100644 --- a/src/helpers/CommonCLI.cpp +++ b/src/helpers/CommonCLI.cpp @@ -1,6 +1,7 @@ #include #include "CommonCLI.h" #include "TxtDataHelpers.h" +#include "AdvertDataHelpers.h" #include // Believe it or not, this std C function is busted on some platforms! @@ -160,6 +161,19 @@ void CommonCLI::savePrefs() { _callbacks->savePrefs(); } +uint8_t CommonCLI::buildAdvertData(uint8_t node_type, uint8_t* app_data) { + if (_prefs->advert_loc_policy == ADVERT_LOC_NONE) { + AdvertDataBuilder builder(node_type, _prefs->node_name); + return builder.encodeTo(app_data); + } else if (_prefs->advert_loc_policy == ADVERT_LOC_SHARE) { + AdvertDataBuilder builder(node_type, _prefs->node_name, sensors.node_lat, sensors.node_lon); + return builder.encodeTo(app_data); + } else { + AdvertDataBuilder builder(node_type, _prefs->node_name, _prefs->node_lat, _prefs->node_lon); + return builder.encodeTo(app_data); + } +} + void CommonCLI::handleCommand(uint32_t sender_timestamp, const char* command, char* reply) { if (memcmp(command, "reboot", 6) == 0) { _board->reboot(); // doesn't return diff --git a/src/helpers/CommonCLI.h b/src/helpers/CommonCLI.h index 68489913..ce567016 100644 --- a/src/helpers/CommonCLI.h +++ b/src/helpers/CommonCLI.h @@ -98,4 +98,5 @@ public: void loadPrefs(FILESYSTEM* _fs); void savePrefs(FILESYSTEM* _fs); void handleCommand(uint32_t sender_timestamp, const char* command, char* reply); + uint8_t buildAdvertData(uint8_t node_type, uint8_t* app_data); };