/// <summary> /// Removes a binding from the cluster to the destination ZigBeeEndpoint. /// /// <param name="address">the destination IeeeAddress</param> /// <param name="endpointId">the destination endpoint ID</param> /// <returns>command Task</returns> /// </summary> public Task <CommandResult> Unbind(IeeeAddress address, byte endpointId) { UnbindRequest command = new UnbindRequest(); command.DestinationAddress = new ZigBeeEndpointAddress(_zigbeeEndpoint.GetEndpointAddress().Address); command.SrcAddress = _zigbeeEndpoint.GetIeeeAddress(); command.SrcEndpoint = _zigbeeEndpoint.EndpointId; command.BindCluster = _clusterId; command.DstAddrMode = 3; // 64 bit addressing command.DstAddress = address; command.DstEndpoint = endpointId; return(_zigbeeEndpoint.SendTransaction(command, new UnbindRequest())); }
/// <summary> /// Creates an UnbindRequest packet. /// </summary> /// <param name="context">The user context which contains message ID.</param> /// <returns>The packet that contains the request.</returns> internal override AdtsUnbindRequestPacket CreateUnbindRequest(AdtsLdapContext context) { UnbindRequest unbindRequest = new UnbindRequest(); LDAPMessage_protocolOp operation = new LDAPMessage_protocolOp(); operation.SetData(LDAPMessage_protocolOp.unbindRequest, unbindRequest); LDAPMessage message = new LDAPMessage(new MessageID(context.MessageId), operation); AdtsUnbindRequestPacket packet = new AdtsUnbindRequestPacket(); packet.ldapMessagev2 = message; packet.messageId = context.MessageId; return(packet); }
public static DERProtocolOperation Extract(ICollection <byte> buffer) { var result = new DERProtocolOperation(); result.ExtractTagAndLength(buffer); switch (result.Tag.LdapCommand) { case LdapCommands.SearchRequest: result.Operation = SearchRequest.Extract(buffer); break; case LdapCommands.BindRequest: result.Operation = BindRequest.Extract(buffer); break; case LdapCommands.UnbindRequest: result.Operation = UnbindRequest.Extract(buffer); break; case LdapCommands.AddRequest: result.Operation = AddRequest.Extract(buffer); break; case LdapCommands.DelRequest: result.Operation = DelRequest.Extract(buffer, result.Length); break; case LdapCommands.ModifyDNRequest: result.Operation = ModifyDNRequest.Extract(buffer); break; case LdapCommands.CompareRequest: result.Operation = CompareRequest.Extract(buffer); break; case LdapCommands.AbandonRequest: result.Operation = AbandonRequest.Extract(buffer); break; case LdapCommands.ModifyRequest: result.Operation = ModifyRequest.Extract(buffer); break; case LdapCommands.SearchResultDone: result.Operation = SearchResultDone.Extract(buffer); break; case LdapCommands.BindResponse: result.Operation = BindResponse.Extract(buffer); break; case LdapCommands.AddResponse: result.Operation = AddResponse.Extract(buffer); break; case LdapCommands.SearchResultEntry: result.Operation = SearchResultEntry.Extract(buffer); break; } return(result); }