gps_cli: gps advert to control advert location policy

Этот коммит содержится в:
Florent
2025-10-11 19:00:02 +02:00
родитель f6064b41e9
Коммит bf1da43d7d
5 изменённых файлов: 72 добавлений и 8 удалений
+10 -2
Просмотреть файл
@@ -289,8 +289,16 @@ mesh::Packet *MyMesh::createSelfAdvert() {
uint8_t app_data[MAX_ADVERT_DATA_SIZE];
uint8_t app_data_len;
{
AdvertDataBuilder builder(ADV_TYPE_REPEATER, _prefs.node_name, _prefs.node_lat, _prefs.node_lon);
app_data_len = builder.encodeTo(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);
+10 -2
Просмотреть файл
@@ -116,8 +116,16 @@ mesh::Packet *MyMesh::createSelfAdvert() {
uint8_t app_data[MAX_ADVERT_DATA_SIZE];
uint8_t app_data_len;
{
AdvertDataBuilder builder(ADV_TYPE_ROOM, _prefs.node_name, _prefs.node_lat, _prefs.node_lon);
app_data_len = builder.encodeTo(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);
+10 -2
Просмотреть файл
@@ -241,8 +241,16 @@ mesh::Packet* SensorMesh::createSelfAdvert() {
uint8_t app_data[MAX_ADVERT_DATA_SIZE];
uint8_t app_data_len;
{
AdvertDataBuilder builder(ADV_TYPE_SENSOR, _prefs.node_name, _prefs.node_lat, _prefs.node_lon);
app_data_len = builder.encodeTo(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);