Improvement #266

IEEE address of device cannot change - remove handling code

Added by Philipp Buluschek about 3 years ago. Updated about 3 years ago.

Status:In Progress Start date:10/27/2014
Priority:Lowest Due date:
Assignee:Stefano Lenzi % Done:

0%

Category:- Spent time: -
Target version:-
Has a patch:No Has license agreement signed:No

Description

In ZigBeeDeviceImpl.setPhysicalNode(ZigBeeNode n) a special case handles the change in IEEE address.

As the IEEE address is the only globally unique identifier of a node, it make no sense to support its change (ie. new IEEE = new devices). Also it cannot happen in the code - the setPhysicalNode() method is only called from DeviceBuilderThread.updateNetworkAddress() where the IEEE address cannot be changed.

Proposal is to remove this piece of code, specifically

...
} else if (node != null
                && !node.getIEEEAddress().equals(n.getIEEEAddress())) {
            logger.debug("Updating IEEE address of node {} to ", node, n.getIEEEAddress());
            node = n;
            uuid = generateUUID();
            properties.put(ZigBeeNode.IEEE_ADDRESS, node.getIEEEAddress());
            properties.put(ZigBeeDevice.UUID, uuid);

            properties.put(Constants.DEVICE_SERIAL, uuid);
            return true;
...

History

#1 Updated by Stefano Lenzi about 3 years ago

  • Status changed from New to In Progress
  • Assignee set to Stefano Lenzi
  • Priority changed from Low to Lowest

In theory you are right but many device allow to change the IEEE address, and it seems that code is needed for handling some special case during the discovery phase, but I will double check.

Also available in: Atom PDF