RF24Mesh icon indicating copy to clipboard operation
RF24Mesh copied to clipboard

move `addrList` allocation into `setNodeID()`

Open 2bndy5 opened this issue 2 years ago • 3 comments

I'm only pursuing this proposal because it would obsolete the private member addrMemAllocated. Initially, this idea came to me (in #220) when discovering that static addresses have to be assigned after calling begin(). In order for a network administrator to give priority to statically assigned addresses, they'd have to assign the addresses before calling update(); this proposal won't change that. However, the requirement for calling begin() feels a bit cumbersome as the addrList array has nothing to do with initializing the required hardware.

I can't think of a reason to keep the allocating code in begin(), so maybe there's a historical reason about why it was written the way it is now.

The proposed code change is pretty straight forward as mentioned in the issue title.

2bndy5 avatar Feb 25 '23 19:02 2bndy5

I can't think of a reason to keep the allocating code in begin()

I just thought of a reason: Allocating the array is dependent on the ID number passed to setNodeID(). I'm not sure if this proposal is feasible now.

2bndy5 avatar Feb 25 '23 19:02 2bndy5

Maybe we can move the allocating code into setNodeID(). As for obsoleting the addrMemAllocated member, we might be able to check if the pointer is null instead.

2bndy5 avatar Feb 25 '23 19:02 2bndy5

I think those are probably both good ideas.

TMRh20 avatar Feb 26 '23 09:02 TMRh20