Skip to content

Commit e7b006b

Browse files
committed
fix #53: check that 64-bit address is not unknown before obtaining the
remote XBee device from the network #53 Signed-off-by: Ruben Moral <Ruben.Moral@digi.com>
1 parent 2a4945c commit e7b006b

File tree

1 file changed

+6
-2
lines changed

1 file changed

+6
-2
lines changed

library/src/main/java/com/digi/xbee/api/connection/DataReader.java

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -699,7 +699,10 @@ public RemoteXBeeDevice getRemoteXBeeDeviceFromPacket(XBeeAPIPacket packet) thro
699699
ReceivePacket receivePacket = (ReceivePacket)apiPacket;
700700
addr64 = receivePacket.get64bitSourceAddress();
701701
addr16 = receivePacket.get16bitSourceAddress();
702-
remoteDevice = network.getDevice(addr64);
702+
if (addr64 != XBee64BitAddress.UNKNOWN_ADDRESS)
703+
remoteDevice = network.getDevice(addr64);
704+
else if (addr16 != XBee16BitAddress.UNKNOWN_ADDRESS)
705+
remoteDevice = network.getDevice(addr16);
703706
break;
704707
case RX_64:
705708
RX64Packet rx64Packet = (RX64Packet)apiPacket;
@@ -744,7 +747,8 @@ public RemoteXBeeDevice getRemoteXBeeDeviceFromPacket(XBeeAPIPacket packet) thro
744747
// If the origin is not in the network, add it.
745748
if (remoteDevice == null) {
746749
remoteDevice = createRemoteXBeeDevice(addr64, addr16, null);
747-
network.addRemoteDevice(remoteDevice);
750+
if (addr64 != XBee64BitAddress.UNKNOWN_ADDRESS || addr16 != XBee16BitAddress.UNKNOWN_ADDRESS)
751+
network.addRemoteDevice(remoteDevice);
748752
}
749753

750754
return remoteDevice;

0 commit comments

Comments
 (0)