@@ -92,15 +92,19 @@ void MeshBase::HandlePeerDiscovery(const MeshBase::Message* msg, const void* buf
9292 if (length != sizeof (PeerDiscoveryMessage))
9393 return ;
9494 const PeerDiscoveryMessage* pd = (struct PeerDiscoveryMessage *)buff;
95- // if (msg. protocol_version != 1)
96- // return;
95+ if (pd-> protocol_version != 1 )
96+ return ;
9797
9898 Peer* peer = GetPeer (msg->address_from );
9999 if (peer == NULL )
100100 {
101101 // Found a new peer
102- Serial.print (" New Peer: " );
103- Serial.println (msg->address_from , DEC);
102+ Serial.print (" New Peer. Address=" );
103+ Serial.print (msg->address_from , DEC);
104+ Serial.print (" uptime=" );
105+ Serial.print (pd->uptime , DEC);
106+ Serial.print (" num_peers=" );
107+ Serial.println (pd->num_peers , DEC);
104108 Peer* p = new Peer (msg->address_from );
105109 peers.Add (p);
106110 OnNewPeer (p);
@@ -119,7 +123,7 @@ void MeshBase::SendPeerDiscovery()
119123 payload.application_capabilities = 0 ;
120124 payload.num_peers = peers.length ;
121125 payload.uptime = millis () / 1000 ;
122- SendMessage (PEER_DISCOVERY, type_peer_discovery, &payload, sizeof (MeshBase::PeerDiscoveryMessage ), true );
126+ SendMessage (PEER_DISCOVERY, type_peer_discovery, &payload, sizeof (payload ), true );
123127}
124128
125129void MeshBase::SendMessage (uint32_t to, uint8_t type, const void * data, uint8_t length, bool is_broadcast)
@@ -132,12 +136,13 @@ void MeshBase::SendMessage(uint32_t to, uint8_t type, const void* data, uint8_t
132136 msg->address_from = address;
133137 msg->split_enabled = 0 ;
134138 msg->split_part = 0 ;
139+ memcpy (&buff[sizeof (Message)], data, min (length, 32 - sizeof (Message)));
135140 radio.stopListening ();
136141 if (is_broadcast)
137142 radio.openWritingPipe (TO_BROADCAST (to));
138143 else
139144 radio.openWritingPipe (TO_ADDRESS (to));
140- radio.write (data , length);
145+ radio.write (buff , length + sizeof (Message) );
141146 radio.startListening ();
142147}
143148
0 commit comments