Skip to content

Commit

Permalink
Merge branch 'master' into mapReportSanityCheck
Browse files Browse the repository at this point in the history
  • Loading branch information
GUVWAF authored Mar 21, 2024
2 parents 0442630 + 6dd337a commit d6a1fc7
Show file tree
Hide file tree
Showing 6 changed files with 20 additions and 19 deletions.
11 changes: 11 additions & 0 deletions src/mesh/NodeDB.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -434,6 +434,7 @@ void NodeDB::resetNodes()
{
numMeshNodes = 1;
std::fill(devicestate.node_db_lite.begin() + 1, devicestate.node_db_lite.end(), meshtastic_NodeInfoLite());
clearLocalPosition();
saveDeviceStateToDisk();
if (neighborInfoModule && moduleConfig.neighbor_info.enabled)
neighborInfoModule->resetNeighbors();
Expand All @@ -455,6 +456,16 @@ void NodeDB::removeNodeByNum(uint nodeNum)
saveDeviceStateToDisk();
}

void NodeDB::clearLocalPosition()
{
meshtastic_NodeInfoLite *node = getMeshNode(nodeDB->getNodeNum());
node->position.latitude_i = 0;
node->position.longitude_i = 0;
node->position.altitude = 0;
node->position.time = 0;
setLocalPosition(meshtastic_Position_init_default);
}

void NodeDB::cleanupMeshDB()
{
int newPos = 0, removed = 0;
Expand Down
2 changes: 2 additions & 0 deletions src/mesh/NodeDB.h
Original file line number Diff line number Diff line change
Expand Up @@ -131,6 +131,8 @@ class NodeDB
meshtastic_NodeInfoLite *getMeshNode(NodeNum n);
size_t getNumMeshNodes() { return numMeshNodes; }

void clearLocalPosition();

void setLocalPosition(meshtastic_Position position, bool timeOnly = false)
{
if (timeOnly) {
Expand Down
5 changes: 3 additions & 2 deletions src/modules/NeighborInfoModule.h
Original file line number Diff line number Diff line change
Expand Up @@ -75,8 +75,9 @@ class NeighborInfoModule : public ProtobufModule<meshtastic_NeighborInfo>, priva
/* Does our periodic broadcast */
int32_t runOnce() override;

// Override wantPacket to say we want to see all packets when enabled, not just those for our port number
virtual bool wantPacket(const meshtastic_MeshPacket *p) override { return enabled; }
/* Override wantPacket to say we want to see all packets when enabled, not just those for our port number.
Exception is when the packet came via MQTT */
virtual bool wantPacket(const meshtastic_MeshPacket *p) override { return enabled && !p->via_mqtt; }

/* These are for debugging only */
void printNeighborInfo(const char *header, const meshtastic_NeighborInfo *np);
Expand Down
14 changes: 2 additions & 12 deletions src/modules/PositionModule.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -34,21 +34,11 @@ PositionModule::PositionModule()
if ((config.device.role == meshtastic_Config_DeviceConfig_Role_TRACKER ||
config.device.role == meshtastic_Config_DeviceConfig_Role_TAK_TRACKER) &&
config.power.is_power_saving) {
clearPosition();
LOG_DEBUG("Clearing position on startup for sleepy tracker (ー。ー) zzz\n");
nodeDB->clearLocalPosition();
}
}

void PositionModule::clearPosition()
{
LOG_DEBUG("Clearing position on startup for sleepy tracker (ー。ー) zzz\n");
meshtastic_NodeInfoLite *node = nodeDB->getMeshNode(nodeDB->getNodeNum());
node->position.latitude_i = 0;
node->position.longitude_i = 0;
node->position.altitude = 0;
node->position.time = 0;
nodeDB->setLocalPosition(meshtastic_Position_init_default);
}

bool PositionModule::handleReceivedProtobuf(const meshtastic_MeshPacket &mp, meshtastic_Position *pptr)
{
auto p = *pptr;
Expand Down
3 changes: 0 additions & 3 deletions src/modules/PositionModule.h
Original file line number Diff line number Diff line change
Expand Up @@ -51,9 +51,6 @@ class PositionModule : public ProtobufModule<meshtastic_Position>, private concu
struct SmartPosition getDistanceTraveledSinceLastSend(meshtastic_PositionLite currentPosition);
meshtastic_MeshPacket *allocAtakPli();
uint32_t precision;

/** Only used in power saving trackers for now */
void clearPosition();
void sendLostAndFoundText();
};

Expand Down
4 changes: 2 additions & 2 deletions src/mqtt/MQTT.h
Original file line number Diff line number Diff line change
Expand Up @@ -90,8 +90,8 @@ class MQTT : private concurrency::OSThread

// For map reporting (only applies when enabled)
uint32_t last_report_to_map = 0;
uint32_t map_position_precision = 32; // default to full precision
uint32_t map_publish_interval_secs = 60 * 15; // default to 15 minutes
uint32_t map_position_precision = 14; // defaults to max. offset of ~1459m
uint32_t map_publish_interval_secs = 60 * 15; // defaults to 15 minutes

/** return true if we have a channel that wants uplink/downlink or map reporting is enabled
*/
Expand Down

0 comments on commit d6a1fc7

Please sign in to comment.