* 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() {
|
mesh::Packet *MyMesh::createSelfAdvert() {
|
||||||
uint8_t app_data[MAX_ADVERT_DATA_SIZE];
|
uint8_t app_data[MAX_ADVERT_DATA_SIZE];
|
||||||
uint8_t app_data_len;
|
uint8_t app_data_len = _cli.buildAdvertData(ADV_TYPE_REPEATER, app_data);
|
||||||
{
|
|
||||||
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);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return createAdvert(self_id, app_data, app_data_len);
|
return createAdvert(self_id, app_data, app_data_len);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -114,19 +114,7 @@ bool MyMesh::processAck(const uint8_t *data) {
|
|||||||
|
|
||||||
mesh::Packet *MyMesh::createSelfAdvert() {
|
mesh::Packet *MyMesh::createSelfAdvert() {
|
||||||
uint8_t app_data[MAX_ADVERT_DATA_SIZE];
|
uint8_t app_data[MAX_ADVERT_DATA_SIZE];
|
||||||
uint8_t app_data_len;
|
uint8_t app_data_len = _cli.buildAdvertData(ADV_TYPE_ROOM, app_data);
|
||||||
{
|
|
||||||
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);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return createAdvert(self_id, app_data, app_data_len);
|
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() {
|
mesh::Packet* SensorMesh::createSelfAdvert() {
|
||||||
uint8_t app_data[MAX_ADVERT_DATA_SIZE];
|
uint8_t app_data[MAX_ADVERT_DATA_SIZE];
|
||||||
uint8_t app_data_len;
|
uint8_t app_data_len = _cli.buildAdvertData(ADV_TYPE_SENSOR, app_data);
|
||||||
{
|
|
||||||
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);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return createAdvert(self_id, app_data, app_data_len);
|
return createAdvert(self_id, app_data, app_data_len);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
#include <Arduino.h>
|
#include <Arduino.h>
|
||||||
#include "CommonCLI.h"
|
#include "CommonCLI.h"
|
||||||
#include "TxtDataHelpers.h"
|
#include "TxtDataHelpers.h"
|
||||||
|
#include "AdvertDataHelpers.h"
|
||||||
#include <RTClib.h>
|
#include <RTClib.h>
|
||||||
|
|
||||||
// Believe it or not, this std C function is busted on some platforms!
|
// Believe it or not, this std C function is busted on some platforms!
|
||||||
@@ -160,6 +161,19 @@ void CommonCLI::savePrefs() {
|
|||||||
_callbacks->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) {
|
void CommonCLI::handleCommand(uint32_t sender_timestamp, const char* command, char* reply) {
|
||||||
if (memcmp(command, "reboot", 6) == 0) {
|
if (memcmp(command, "reboot", 6) == 0) {
|
||||||
_board->reboot(); // doesn't return
|
_board->reboot(); // doesn't return
|
||||||
|
|||||||
@@ -98,4 +98,5 @@ public:
|
|||||||
void loadPrefs(FILESYSTEM* _fs);
|
void loadPrefs(FILESYSTEM* _fs);
|
||||||
void savePrefs(FILESYSTEM* _fs);
|
void savePrefs(FILESYSTEM* _fs);
|
||||||
void handleCommand(uint32_t sender_timestamp, const char* command, char* reply);
|
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