mirror of
https://github.com/meshcore-dev/MeshCore.git
synced 2026-03-30 17:05:52 +00:00
* Refactor: advert_loc_policy now applied in new method CommonCLI::buildAdvertData()
This commit is contained in:
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
#include <Arduino.h>
|
||||
#include "CommonCLI.h"
|
||||
#include "TxtDataHelpers.h"
|
||||
#include "AdvertDataHelpers.h"
|
||||
#include <RTClib.h>
|
||||
|
||||
// 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
|
||||
|
||||
@@ -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);
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user