diff --git a/src/plugins/PositionPlugin.cpp b/src/plugins/PositionPlugin.cpp index b0ce8e21..e0c77895 100644 --- a/src/plugins/PositionPlugin.cpp +++ b/src/plugins/PositionPlugin.cpp @@ -31,10 +31,16 @@ MeshPacket *PositionPlugin::allocReply() { NodeInfo *node = nodeDB.getNode(nodeDB.getNodeNum()); assert(node); - assert(node->has_position); + + // We might not have a position yet for our local node, in that case, at least try to send the time + if(!node->has_position) { + memset(&node->position, 0, sizeof(node->position)); + node->has_position = true; + } + + Position &position = node->position; // Update our local node info with our position (even if we don't decide to update anyone else) - auto position = node->position; position.time = getValidTime(RTCQualityGPS); // This nodedb timestamp might be stale, so update it if our clock is valid. return allocDataProtobuf(position);