protected void ParseHandler(DataReceivedUnit ou) { byte[] res = ou.DataFrame.Payload; SequenceNumber = res[0]; NodeStatus = (NodeStatuses)res[1]; if (NodeStatus == NodeStatuses.AddingRemovingController || NodeStatus == NodeStatuses.AddingRemovingSlave) { if (NodeStatus == NodeStatuses.AddingRemovingSlave) { SpecificResult.IsSlave = true; //set isController bit } if (res.Length > 2) { SpecificResult.Id = res[2]; } byte nodeInfoLength = 0; if (res.Length > 3) { nodeInfoLength = res[3]; } if (nodeInfoLength > 3) { SpecificResult.CommandClasses = new byte[nodeInfoLength - 3]; } for (int i = 0; i < nodeInfoLength; i++) { byte value = res[4 + i]; switch (i) { case 0: SpecificResult.Basic = value; break; case 1: SpecificResult.Generic = value; break; case 2: SpecificResult.Specific = value; break; default: SpecificResult.CommandClasses[i - 3] = value; break; } } } NodeStatusCallback(NodeStatus); }
private void OnNodeStatus(NodeStatuses nodeStatus) { if (nodeStatus == NodeStatuses.AddingRemovingController || nodeStatus == NodeStatuses.AddingRemovingSlave) { _peerFilter.SetFilterNodeId(_removeNode.SpecificResult.Id); } if (_nodeStatusCallback != null) { _nodeStatusCallback(nodeStatus); } }
private void OnNodeStatus(NodeStatuses nodeStatus) { if (nodeStatus == NodeStatuses.AddingRemovingController || nodeStatus == NodeStatuses.AddingRemovingSlave || nodeStatus == NodeStatuses.Done) { if (_addNode is ReplaceFailedNodeOperation) { _addNode.SpecificResult.AddRemoveNodeStatus = AddRemoveNodeStatuses.Replaced; } _peerFilter.SetFilterNodeId(_addNode.SpecificResult.Id); } if (_nodeStatusCallback != null) { _nodeStatusCallback(nodeStatus); } }
protected void ParseHandler(DataReceivedUnit ou) { byte[] res = ou.DataFrame.Payload; SequenceNumber = res[0]; NodeStatus = (NodeStatuses)res[1]; if (NodeStatus == NodeStatuses.AddingRemovingController || NodeStatus == NodeStatuses.AddingRemovingSlave) { if (NodeStatus == NodeStatuses.AddingRemovingSlave) { SpecificResult.IsSlave = true; //set isController bit } if (res.Length > 2) { SpecificResult.Id = res[2]; } if (res.Length > 4) { SpecificResult.Basic = res[4]; } if (res.Length > 5) { SpecificResult.Generic = res[5]; } if (res.Length > 6) { SpecificResult.Specific = res[6]; } if (res.Length > 7) { SpecificResult.CommandClasses = res.Skip(7).TakeWhile(x => x != 0xEF).ToArray(); } if (NodesBefore != null && NodesBefore.Contains(SpecificResult.Id)) { SpecificResult.AddRemoveNodeStatus = AddRemoveNodeStatuses.Replicated; } else { SpecificResult.AddRemoveNodeStatus = AddRemoveNodeStatuses.Added; } } NodeStatusCallback(NodeStatus); }