Make ZWaveNode.endpoints property public and remove GetAllEndpoints method #42
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Because
ZWaveNode.endpoints
was internal,NodesCollection.ReplaceInformation()
wasn't copying this property. So if you added a node to the network, then when called in theNodeReady
event, the node passed as a parameter always had itsendpoints
property set to null.To fix that I made it public (with an internal setter) and remove the
GetAllEndpoints
method which is no longer needed.Another problem with
NodesCollection.ReplaceInformation()
that I did not fix, is that it calls the setter forZWaveNode.name
,ZWaveNode.location
,ZWaveNode.keepAwake
, which in turn sends some message backs to the server which are completely unnecessary.The same thing also happens every time a node is deserialized as those setters are called too.
So I think it would make sense to have some SetName, SetLocation and SetKeepAwake methods and have an internal setter that only updates the local value, like with all other properties.
What do you think?