Exemplo n.º 1
0
void MeshBase::HandlePeerDiscovery(const MeshBase::Message* msg, const void* buff, uint8_t length)
{
	if (length != sizeof(PeerDiscoveryMessage))
		return;
	const PeerDiscoveryMessage* pd = (struct PeerDiscoveryMessage*)buff;
	if (pd->protocol_version != 1)
		return;

	Peer* peer = GetPeer(msg->address_from);
	if (peer == NULL)
	{
		// Found a new peer
		Serial.print("New Peer. Address=");
		Serial.print(msg->address_from, DEC);
		Serial.print(" uptime=");
		Serial.print(pd->uptime, DEC);
		Serial.print(" num_peers=");
		Serial.println(pd->num_peers, DEC);
		Peer* p = new Peer(msg->address_from);
		peers.Add(p);
		OnNewPeer(p);
	} else {
		// Existing peer, reset timer
		peer->time = 0;
	}
}
Exemplo n.º 2
0
void MeshBase::HandlePeerDiscovery(void* buff, uint8_t length)
{
	if (length != sizeof(PeerDiscoveryMessage))
		return;
	PeerDiscoveryMessage from = *(PeerDiscoveryMessage*)buff;
	// Dont know why, but this keeps happening?
	/*if (from == 0)
		return;*/

	Peer* peer = GetPeer(from.address);
	if (peer == NULL)
	{
		// Found a new peer
		Serial.print("New Peer: ");
		Serial.println(from.address, DEC);
		Peer* p = new Peer(from.address);
		peers.Add(p);
		OnNewPeer(p);
	} else {
		// Existing peer, reset timer
		peer->time = 0;
	}
}