mirror of
https://github.com/meshtastic/firmware.git
synced 2025-06-13 08:32:08 +00:00
Add contact admin message (for QR code) (#6806)
This commit is contained in:
parent
a7415791a5
commit
0a8bd1e4be
@ -1455,6 +1455,26 @@ void NodeDB::updateTelemetry(uint32_t nodeId, const meshtastic_Telemetry &t, RxS
|
|||||||
notifyObservers(true); // Force an update whether or not our node counts have changed
|
notifyObservers(true); // Force an update whether or not our node counts have changed
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Update the node database with a new contact
|
||||||
|
*/
|
||||||
|
void NodeDB::addFromContact(meshtastic_SharedContact contact)
|
||||||
|
{
|
||||||
|
meshtastic_NodeInfoLite *info = getOrCreateMeshNode(contact.node_num);
|
||||||
|
if (!info) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
info->num = contact.node_num;
|
||||||
|
info->last_heard = getValidTime(RTCQualityNTP);
|
||||||
|
info->has_user = true;
|
||||||
|
info->user = TypeConversions::ConvertToUserLite(contact.user);
|
||||||
|
info->is_favorite = true;
|
||||||
|
updateGUIforNode = info;
|
||||||
|
powerFSM.trigger(EVENT_NODEDB_UPDATED);
|
||||||
|
notifyObservers(true); // Force an update whether or not our node counts have changed
|
||||||
|
saveNodeDatabaseToDisk();
|
||||||
|
}
|
||||||
|
|
||||||
/** Update user info and channel for this node based on received user data
|
/** Update user info and channel for this node based on received user data
|
||||||
*/
|
*/
|
||||||
bool NodeDB::updateUser(uint32_t nodeId, meshtastic_User &p, uint8_t channelIndex)
|
bool NodeDB::updateUser(uint32_t nodeId, meshtastic_User &p, uint8_t channelIndex)
|
||||||
|
@ -110,6 +110,8 @@ class NodeDB
|
|||||||
/// we updateGUI and updateGUIforNode if we think our this change is big enough for a redraw
|
/// we updateGUI and updateGUIforNode if we think our this change is big enough for a redraw
|
||||||
void updateFrom(const meshtastic_MeshPacket &p);
|
void updateFrom(const meshtastic_MeshPacket &p);
|
||||||
|
|
||||||
|
void addFromContact(const meshtastic_SharedContact);
|
||||||
|
|
||||||
/** Update position info for this node based on received position data
|
/** Update position info for this node based on received position data
|
||||||
*/
|
*/
|
||||||
void updatePosition(uint32_t nodeId, const meshtastic_Position &p, RxSource src = RX_SRC_RADIO);
|
void updatePosition(uint32_t nodeId, const meshtastic_Position &p, RxSource src = RX_SRC_RADIO);
|
||||||
|
@ -286,6 +286,11 @@ bool AdminModule::handleReceivedProtobuf(const meshtastic_MeshPacket &mp, meshta
|
|||||||
nodeDB->removeNodeByNum(r->remove_by_nodenum);
|
nodeDB->removeNodeByNum(r->remove_by_nodenum);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
case meshtastic_AdminMessage_add_contact_tag: {
|
||||||
|
LOG_INFO("Client received add_contact command");
|
||||||
|
nodeDB->addFromContact(r->add_contact);
|
||||||
|
break;
|
||||||
|
}
|
||||||
case meshtastic_AdminMessage_set_favorite_node_tag: {
|
case meshtastic_AdminMessage_set_favorite_node_tag: {
|
||||||
LOG_INFO("Client received set_favorite_node command");
|
LOG_INFO("Client received set_favorite_node command");
|
||||||
meshtastic_NodeInfoLite *node = nodeDB->getMeshNode(r->set_favorite_node);
|
meshtastic_NodeInfoLite *node = nodeDB->getMeshNode(r->set_favorite_node);
|
||||||
|
Loading…
Reference in New Issue
Block a user