mirror of
https://github.com/meshtastic/firmware.git
synced 2025-06-22 13:04:53 +00:00
Clear local position on nodedb-reset (#3451)
* Clear local position on nodedb-reset * NodeDB pointer now, yo --------- Co-authored-by: Jonathan Bennett <jbennett@incomsystems.biz>
This commit is contained in:
parent
0a7ddb7594
commit
6dd337a651
@ -434,6 +434,7 @@ void NodeDB::resetNodes()
|
|||||||
{
|
{
|
||||||
numMeshNodes = 1;
|
numMeshNodes = 1;
|
||||||
std::fill(devicestate.node_db_lite.begin() + 1, devicestate.node_db_lite.end(), meshtastic_NodeInfoLite());
|
std::fill(devicestate.node_db_lite.begin() + 1, devicestate.node_db_lite.end(), meshtastic_NodeInfoLite());
|
||||||
|
clearLocalPosition();
|
||||||
saveDeviceStateToDisk();
|
saveDeviceStateToDisk();
|
||||||
if (neighborInfoModule && moduleConfig.neighbor_info.enabled)
|
if (neighborInfoModule && moduleConfig.neighbor_info.enabled)
|
||||||
neighborInfoModule->resetNeighbors();
|
neighborInfoModule->resetNeighbors();
|
||||||
@ -455,6 +456,16 @@ void NodeDB::removeNodeByNum(uint nodeNum)
|
|||||||
saveDeviceStateToDisk();
|
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()
|
void NodeDB::cleanupMeshDB()
|
||||||
{
|
{
|
||||||
int newPos = 0, removed = 0;
|
int newPos = 0, removed = 0;
|
||||||
|
@ -131,6 +131,8 @@ class NodeDB
|
|||||||
meshtastic_NodeInfoLite *getMeshNode(NodeNum n);
|
meshtastic_NodeInfoLite *getMeshNode(NodeNum n);
|
||||||
size_t getNumMeshNodes() { return numMeshNodes; }
|
size_t getNumMeshNodes() { return numMeshNodes; }
|
||||||
|
|
||||||
|
void clearLocalPosition();
|
||||||
|
|
||||||
void setLocalPosition(meshtastic_Position position, bool timeOnly = false)
|
void setLocalPosition(meshtastic_Position position, bool timeOnly = false)
|
||||||
{
|
{
|
||||||
if (timeOnly) {
|
if (timeOnly) {
|
||||||
|
@ -34,21 +34,11 @@ PositionModule::PositionModule()
|
|||||||
if ((config.device.role == meshtastic_Config_DeviceConfig_Role_TRACKER ||
|
if ((config.device.role == meshtastic_Config_DeviceConfig_Role_TRACKER ||
|
||||||
config.device.role == meshtastic_Config_DeviceConfig_Role_TAK_TRACKER) &&
|
config.device.role == meshtastic_Config_DeviceConfig_Role_TAK_TRACKER) &&
|
||||||
config.power.is_power_saving) {
|
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)
|
bool PositionModule::handleReceivedProtobuf(const meshtastic_MeshPacket &mp, meshtastic_Position *pptr)
|
||||||
{
|
{
|
||||||
auto p = *pptr;
|
auto p = *pptr;
|
||||||
|
@ -51,9 +51,6 @@ class PositionModule : public ProtobufModule<meshtastic_Position>, private concu
|
|||||||
struct SmartPosition getDistanceTraveledSinceLastSend(meshtastic_PositionLite currentPosition);
|
struct SmartPosition getDistanceTraveledSinceLastSend(meshtastic_PositionLite currentPosition);
|
||||||
meshtastic_MeshPacket *allocAtakPli();
|
meshtastic_MeshPacket *allocAtakPli();
|
||||||
uint32_t precision;
|
uint32_t precision;
|
||||||
|
|
||||||
/** Only used in power saving trackers for now */
|
|
||||||
void clearPosition();
|
|
||||||
void sendLostAndFoundText();
|
void sendLostAndFoundText();
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user