gpt4 book ai didi

com.zsmartsystems.zigbee.ZigBeeNetworkManager.getNode()方法的使用及代码示例

转载 作者:知者 更新时间:2024-03-14 07:57:31 30 4
gpt4 key购买 nike

本文整理了Java中com.zsmartsystems.zigbee.ZigBeeNetworkManager.getNode()方法的一些代码示例,展示了ZigBeeNetworkManager.getNode()的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。ZigBeeNetworkManager.getNode()方法的具体详情如下:
包路径:com.zsmartsystems.zigbee.ZigBeeNetworkManager
类名称:ZigBeeNetworkManager
方法名:getNode

ZigBeeNetworkManager.getNode介绍

[英]Gets a node given the IeeeAddress
[中]获取给定IeeeAddress的节点

代码示例

代码示例来源:origin: openhab/org.openhab.binding.zigbee

/**
 * Gets a node given the long address
 *
 * @param nodeIeeeAddress the {@link IeeeAddress} of the device
 * @return the {@link ZigBeeNode} or null if the node is not found
 */
public ZigBeeNode getNode(IeeeAddress nodeIeeeAddress) {
  if (networkManager == null) {
    return null;
  }
  return networkManager.getNode(nodeIeeeAddress);
}

代码示例来源:origin: zsmartsystems/com.zsmartsystems.zigbee

out.println("Network Addr  IEEE Address      Logical Type  EP   Profile                    Device Type");
for (Integer nodeId : nodeIds) {
  ZigBeeNode node = networkManager.getNode(nodeId);
  out.print(String.format("%-6d  %04X  %s  %-12s  ", node.getNetworkAddress(), node.getNetworkAddress(),
      node.getIeeeAddress(), node.getLogicalType()));

代码示例来源:origin: zsmartsystems/com.zsmartsystems.zigbee

/**
 * Gets a {@link ZigBeeNode}
 *
 * @param networkManager the {@link ZigBeeNetworkManager}
 * @param nodeId a {@link String} with the node Id
 * @return the {@link ZigBeeNode}
 * @throws IllegalArgumentException
 */
protected ZigBeeNode getNode(ZigBeeNetworkManager networkManager, final String nodeId)
    throws IllegalArgumentException {
  try {
    Integer nwkAddress = Integer.parseInt(nodeId);
    if (networkManager.getNode(nwkAddress) != null) {
      return networkManager.getNode(nwkAddress);
    }
  } catch (Exception e) {
  }
  try {
    IeeeAddress ieeeAddress = new IeeeAddress(nodeId);
    if (networkManager.getNode(ieeeAddress) != null) {
      return networkManager.getNode(ieeeAddress);
    }
  } catch (Exception e) {
  }
  throw new IllegalArgumentException("Node '" + nodeId + "' is not found.");
}

代码示例来源:origin: zsmartsystems/com.zsmartsystems.zigbee

@Test
public void testAddExistingNode() {
  String address = "123456789ABCDEF0";
  ZigBeeNetworkManager networkManager = mockZigBeeNetworkManager();
  ZigBeeNode node1 = new ZigBeeNode(Mockito.mock(ZigBeeNetworkManager.class), new IeeeAddress(address));
  node1.setNetworkAddress(1234);
  ZigBeeNode node2 = new ZigBeeNode(Mockito.mock(ZigBeeNetworkManager.class), new IeeeAddress(address));
  node2.setNetworkAddress(5678);
  networkManager.addNode(node1);
  assertEquals(1, networkManager.getNodes().size());
  ZigBeeNode nodeWeGot = networkManager.getNode(new IeeeAddress(address));
  assertEquals(Integer.valueOf(1234), nodeWeGot.getNetworkAddress());
  networkManager.addNode(node2);
  assertEquals(1, networkManager.getNodes().size());
  assertEquals(Integer.valueOf(5678), nodeWeGot.getNetworkAddress());
}

代码示例来源:origin: openhab/org.openhab.binding.zigbee

public ZigBeeEndpoint getEndpoint(IeeeAddress address, int endpointId) {
  if (networkManager == null) {
    return null;
  }
  ZigBeeNode node = networkManager.getNode(address);
  if (node == null) {
    return null;
  }
  return node.getEndpoint(endpointId);
}

代码示例来源:origin: openhab/org.openhab.binding.zigbee

public Collection<ZigBeeEndpoint> getNodeEndpoints(IeeeAddress nodeIeeeAddress) {
  if (networkManager == null) {
    return Collections.<ZigBeeEndpoint> emptySet();
  }
  ZigBeeNode node = networkManager.getNode(nodeIeeeAddress);
  if (node == null) {
    return Collections.<ZigBeeEndpoint> emptySet();
  }
  return node.getEndpoints();
}

代码示例来源:origin: openhab/org.openhab.binding.zigbee

/**
 * Removes a node from the network manager. This does not cause the network manager to tell the node to leave the
 * network, but will only remove the node from the network manager lists. Thus, if the node is still alive, it may
 * be able to rejoin the network.
 * <p>
 * To force the node to leave the network, use the {@link #leave(IeeeAddress)} method
 *
 * @param nodeIeeeAddress the {@link IeeeAddress} of the node to remove
 */
public void removeNode(IeeeAddress nodeIeeeAddress) {
  ZigBeeNode node = networkManager.getNode(nodeIeeeAddress);
  if (node == null) {
    return;
  }
  networkManager.removeNode(node);
}

代码示例来源:origin: zsmartsystems/com.zsmartsystems.zigbee

@Override
  public void run() {
    try {
      CommandResult response = sendTransaction(command, command).get();
      if (response.getStatusCode() == 0) {
        ZigBeeNode node = getNode(leaveAddress);
        if (node != null) {
          removeNode(node);
        } else {
          logger.debug("{}: No node found after successful leave command", leaveAddress);
        }
      } else {
        logger.debug("{}: No successful response received to leave command (status code {})",
            leaveAddress, response.getStatusCode());
      }
    } catch (InterruptedException | ExecutionException e) {
      logger.debug("Error sending leave command.", e);
    }
  }
}.start();

代码示例来源:origin: openhab/org.openhab.binding.zigbee

/**
 * Permit joining only for the specified node
 *
 * @param address the 16 bit network address of the node to enable joining
 * @param duration the duration of the join
 */
public boolean permitJoin(IeeeAddress address, int duration) {
  logger.debug("{}: ZigBee join command", address);
  ZigBeeNode node = networkManager.getNode(address);
  if (node == null) {
    logger.debug("{}: ZigBee join command - node not found", address);
    return false;
  }
  logger.debug("{}: ZigBee join command to {}", address, node.getNetworkAddress());
  networkManager.permitJoin(new ZigBeeEndpointAddress(node.getNetworkAddress()), duration);
  return true;
}

代码示例来源:origin: openhab/org.openhab.binding.zigbee

/**
 * Sends a ZDO Leave Request to a device requesting that an end device leave the network.
 * <p>
 * This method will send the ZDO message to the device itself requesting it leave the network
 *
 * @param address the network address to leave
 * @return true if the command is sent
 */
public boolean leave(IeeeAddress address) {
  // First we want to make sure that join is disabled
  networkManager.permitJoin(0);
  logger.debug("{}: ZigBee leave command", address);
  ZigBeeNode node = networkManager.getNode(address);
  if (node == null) {
    logger.debug("{}: ZigBee leave command - node not found", address);
    return false;
  }
  logger.debug("{}: ZigBee leave command to {}", address, node.getNetworkAddress());
  networkManager.leave(node.getNetworkAddress(), node.getIeeeAddress());
  return true;
}

代码示例来源:origin: zsmartsystems/com.zsmartsystems.zigbee

private void addLocalNode() {
  Integer nwkAddress = transport.getNwkAddress();
  IeeeAddress ieeeAddress = transport.getIeeeAddress();
  if (nwkAddress != null && ieeeAddress != null) {
    ZigBeeNode node = getNode(ieeeAddress);
    if (node == null) {
      logger.debug("{}: Adding local node to network, NWK={}", ieeeAddress, nwkAddress);
      node = new ZigBeeNode(this, ieeeAddress);
      node.setNetworkAddress(nwkAddress);
      addNode(node);
    }
  }
}

代码示例来源:origin: zsmartsystems/com.zsmartsystems.zigbee

@Override
public void nodeAdded(ZigBeeNode node) {
  for (ZigBeeEndpoint endpoint : node.getEndpoints()) {
    if (endpoint.getInputCluster(ZclIasZoneCluster.CLUSTER_ID) != null) {
      endpoint.addApplication(new ZclIasZoneClient(networkManager.getNode(0).getIeeeAddress(), 0));
      break;
    }
  }
}

代码示例来源:origin: zsmartsystems/com.zsmartsystems.zigbee

/**
   * Updates {@link ZigBeeNode} and adds it to the {@link ZigBeeNetworkManager}
   *
   * @param ieeeAddress the {@link IeeeAddress} of the newly announced node
   * @param networkAddress the network address of the newly announced node
   */
  private void addNode(final IeeeAddress ieeeAddress, int networkAddress) {
    logger.debug("{}: NWK Discovery add node {}", ieeeAddress, networkAddress);
    ZigBeeNode node = networkManager.getNode(ieeeAddress);
    if (node != null) {
      if (node.getNetworkAddress() != networkAddress) {
        logger.debug("{}: NWK Discovery updated network address to {}", ieeeAddress, networkAddress);
      }
      node.setNodeState(ZigBeeNodeState.ONLINE);
      node.setNetworkAddress(networkAddress);
      networkManager.updateNode(node);
      return;
    }

    node = new ZigBeeNode(networkManager, ieeeAddress);
    node.setNetworkAddress(networkAddress);

    // Add the node to the network...
    networkManager.addNode(node);
  }
}

代码示例来源:origin: zsmartsystems/com.zsmartsystems.zigbee

@Override
  public void process(ZigBeeNetworkManager networkManager, String[] args, PrintStream out)
      throws IllegalArgumentException, InterruptedException, ExecutionException {
    if (args.length < 3 || args.length > 4) {
      throw new IllegalArgumentException("Invalid number of arguments");
    }

    String clusterSpecParam = args[1];
    String sourceEndpointParam = args[2];
    String destEndpointParam = (args.length == 4) ? args[3] : null;

    final ZigBeeEndpoint sourceEndpoint = getEndpoint(networkManager, sourceEndpointParam);
    ZclCluster cluster = getCluster(sourceEndpoint, clusterSpecParam);

    IeeeAddress destAddress;
    int destEndpoint;
    if (destEndpointParam != null) {
      ZigBeeEndpoint destination = getEndpoint(networkManager, destEndpointParam);
      destAddress = destination.getIeeeAddress();
      destEndpoint = destination.getEndpointId();
    } else {
      destAddress = networkManager.getNode(0).getIeeeAddress();
      destEndpoint = 1;
    }

    final CommandResult response = cluster.unbind(destAddress, destEndpoint).get();
    processDefaultResponse(response, out);
  }
}

代码示例来源:origin: zsmartsystems/com.zsmartsystems.zigbee

/**
 * Switches destination on.
 *
 * @param destination the {@link ZigBeeAddress}
 * @return the command result future.
 */
public Future<CommandResult> on(final ZigBeeAddress destination) {
  if (!(destination instanceof ZigBeeEndpointAddress)) {
    return null;
  }
  ZigBeeEndpointAddress endpointAddress = (ZigBeeEndpointAddress) destination;
  ZigBeeEndpoint endpoint = networkManager.getNode(endpointAddress.getAddress())
      .getEndpoint(endpointAddress.getEndpoint());
  if (endpoint == null) {
    return null;
  }
  ZclOnOffCluster cluster = (ZclOnOffCluster) endpoint.getInputCluster(ZclOnOffCluster.CLUSTER_ID);
  return cluster.onCommand();
}

代码示例来源:origin: zsmartsystems/com.zsmartsystems.zigbee

@Override
  public void process(ZigBeeNetworkManager networkManager, String[] args, PrintStream out)
      throws IllegalArgumentException, InterruptedException, ExecutionException {
    if (args.length < 3 || args.length > 4) {
      throw new IllegalArgumentException("Invalid number of arguments");
    }

    String clusterSpecParam = args[1];
    String sourceEndpointParam = args[2];
    String destEndpointParam = (args.length == 4) ? args[3] : null;

    final ZigBeeEndpoint sourceEndpoint = getEndpoint(networkManager, sourceEndpointParam);
    ZclCluster cluster = getCluster(sourceEndpoint, clusterSpecParam);

    IeeeAddress destAddress;
    int destEndpoint;
    if (destEndpointParam != null) {
      ZigBeeEndpoint destination = getEndpoint(networkManager, destEndpointParam);
      destAddress = destination.getIeeeAddress();
      destEndpoint = destination.getEndpointId();
    } else {
      destAddress = networkManager.getNode(0).getIeeeAddress();
      destEndpoint = 1;
    }

    final CommandResult response = cluster.bind(destAddress, destEndpoint).get();
    processDefaultResponse(response, out);
  }
}

代码示例来源:origin: zsmartsystems/com.zsmartsystems.zigbee

@Test
public void sendTransaction() {
  ZigBeeNetworkManager networkManager = Mockito.mock(ZigBeeNetworkManager.class);
  ZigBeeCommand command = Mockito.mock(ZigBeeCommand.class);
  Mockito.when(command.getDestinationAddress()).thenReturn(new ZigBeeEndpointAddress(123));
  ZigBeeTransactionMatcher responseMatcher = Mockito.mock(ZigBeeTransactionMatcher.class);
  ZigBeeNode node = Mockito.mock(ZigBeeNode.class);
  Mockito.when(node.getIeeeAddress()).thenReturn(new IeeeAddress("1234567890ABCDEF"));
  Mockito.when(networkManager.getNode(123)).thenReturn(node);
  ZigBeeTransactionManager transactionManager = new ZigBeeTransactionManager(networkManager);
  transactionManager.sendTransaction(command);
  Future<CommandResult> cmdResult = transactionManager.sendTransaction(command, responseMatcher);
  assertNotNull(cmdResult);
  ZigBeeCommand unknownCommand = Mockito.mock(ZigBeeCommand.class);
  Mockito.when(unknownCommand.getDestinationAddress()).thenReturn(new ZigBeeEndpointAddress(456));
  cmdResult = transactionManager.sendTransaction(unknownCommand, responseMatcher);
  // assertNull(cmdResult);
}

代码示例来源:origin: zsmartsystems/com.zsmartsystems.zigbee

@Override
public void commandReceived(final ZigBeeCommand command) {
  // ZCL command received from remote node. Perform discovery if it is not yet known.
  if (command instanceof ZclCommand) {
    final ZclCommand zclCommand = (ZclCommand) command;
    if (networkManager.getNode(zclCommand.getSourceAddress().getAddress()) == null) {
      // TODO: Protect against group address?
      ZigBeeEndpointAddress address = (ZigBeeEndpointAddress) zclCommand.getSourceAddress();
      startNodeDiscovery(address.getAddress());
    }
    return;
  }
  // Node has been announced.
  if (command instanceof DeviceAnnounce) {
    final DeviceAnnounce announce = (DeviceAnnounce) command;
    logger.debug("{}: Device announce received. NWK={}", announce.getIeeeAddr(),
        announce.getNwkAddrOfInterest());
    addNode(announce.getIeeeAddr(), announce.getNwkAddrOfInterest());
  }
}

代码示例来源:origin: zsmartsystems/com.zsmartsystems.zigbee

@Test
  public void testNodeAddressUpdate() {
    IeeeAddress ieeeAddress = new IeeeAddress("123456890ABCDEF");

    ZigBeeNode node = Mockito.mock(ZigBeeNode.class);// new ZigBeeNode(networkManager, ieeeAddress);
    Mockito.doReturn(node).when(networkManager).getNode(ArgumentMatchers.any(IeeeAddress.class));

    DeviceAnnounce announce = new DeviceAnnounce();
    announce.setIeeeAddr(ieeeAddress);
    announce.setNwkAddrOfInterest(12345);

    ZigBeeNetworkDiscoverer discoverer = new ZigBeeNetworkDiscoverer(networkManager);
    discoverer.setRetryPeriod(0);
    discoverer.setRequeryPeriod(0);
    discoverer.setRetryCount(0);

    discoverer.commandReceived(announce);
    Mockito.verify(node, Mockito.times(1)).setNetworkAddress(ArgumentMatchers.anyInt());

    ZigBeeEndpointAddress address = Mockito.mock(ZigBeeEndpointAddress.class);
    Mockito.when(address.getAddress()).thenReturn(12345);
    ZclCommand zclCommand = Mockito.mock(ZclCommand.class);
    Mockito.when(zclCommand.getSourceAddress()).thenReturn(address);
    discoverer.commandReceived(zclCommand);
  }
}

代码示例来源:origin: zsmartsystems/com.zsmartsystems.zigbee

@Test
public void initialize() {
  ZigBeeTransportTransmit transport = Mockito.mock(ZigBeeTransportTransmit.class);
  Mockito.when(transport.initialize()).thenReturn(ZigBeeStatus.COMMUNICATION_ERROR);
  ZigBeeNetworkManager manager = new ZigBeeNetworkManager(transport);
  ZigBeeStatus response = manager.initialize();
  assertEquals(ZigBeeStatus.COMMUNICATION_ERROR, response);
  transport = Mockito.mock(ZigBeeTransportTransmit.class);
  Mockito.when(transport.initialize()).thenReturn(ZigBeeStatus.SUCCESS);
  Mockito.when(transport.getNwkAddress()).thenReturn(Integer.valueOf(123));
  Mockito.when(transport.getIeeeAddress()).thenReturn(new IeeeAddress("1234567890ABCDEF"));
  manager = new ZigBeeNetworkManager(transport);
  response = manager.initialize();
  assertEquals(ZigBeeStatus.SUCCESS, response);
  ZigBeeNode node = manager.getNode(new IeeeAddress("1234567890ABCDEF"));
  assertNotNull(node);
  assertEquals(Integer.valueOf(123), node.getNetworkAddress());
  manager.shutdown();
  Mockito.verify(transport, Mockito.times(1)).shutdown();
}

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com