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

x33g5p2x  于2022-02-05 转载在 其他  
字(5.5k)|赞(0)|评价(0)|浏览(141)

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

ZigBeeApsFrame.getCluster介绍

暂无

代码示例

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

private ZigBeeCommand receiveZdoCommand(final ZclFieldDeserializer fieldDeserializer,
    final ZigBeeApsFrame apsFrame) {
  ZdoCommandType commandType = ZdoCommandType.getValueById(apsFrame.getCluster());
  if (commandType == null) {
    return null;
  }
  ZigBeeCommand command;
  try {
    Class<? extends ZdoCommand> commandClass = commandType.getCommandClass();
    Constructor<? extends ZdoCommand> constructor;
    constructor = commandClass.getConstructor();
    command = constructor.newInstance();
  } catch (NoSuchMethodException | SecurityException | InstantiationException | IllegalAccessException
      | IllegalArgumentException | InvocationTargetException e) {
    logger.debug("Error instantiating ZDO command", e);
    return null;
  }
  command.deserialize(fieldDeserializer);
  return command;
}

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

private ZigBeeCommand receiveZclCommand(final ZclFieldDeserializer fieldDeserializer,
    final ZigBeeApsFrame apsFrame) {
  // Process the ZCL header
  ZclHeader zclHeader = new ZclHeader(fieldDeserializer);
  logger.debug("RX ZCL: {}", zclHeader);
  // Get the command type
  ZclCommandType commandType = null;
  if (zclHeader.getFrameType() == ZclFrameType.ENTIRE_PROFILE_COMMAND) {
    commandType = ZclCommandType.getGeneric(zclHeader.getCommandId());
  } else {
    commandType = ZclCommandType.getCommandType(apsFrame.getCluster(), zclHeader.getCommandId(),
        zclHeader.getDirection());
  }
  if (commandType == null) {
    logger.debug("No command type found for {}, cluster={}, command={}, direction={}", zclHeader.getFrameType(),
        apsFrame.getCluster(), zclHeader.getCommandId(), zclHeader.getDirection());
    return null;
  }
  ZclCommand command = commandType.instantiateCommand();
  if (command == null) {
    logger.debug("No command found for {}, cluster={}, command={}", zclHeader.getFrameType(),
        apsFrame.getCluster(), zclHeader.getCommandId());
    return null;
  }
  command.setCommandDirection(zclHeader.getDirection());
  command.deserialize(fieldDeserializer);
  command.setClusterId(apsFrame.getCluster());
  command.setTransactionId(zclHeader.getSequenceNumber());
  return command;
}

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

@Override
public void sendCommand(final ZigBeeApsFrame apsFrame) {
  synchronized (networkManager) {
    final short sender;
    if (apsFrame.getProfile() == 0) {
      sender = 0;
    } else {
      sender = (short) getSendingEndpoint(apsFrame.getProfile());
    }
    // TODO: How to differentiate group and device addressing?????
    boolean groupCommand = false;
    if (!groupCommand) {
      networkManager.sendCommand(new AF_DATA_REQUEST(apsFrame.getDestinationAddress(),
          (short) apsFrame.getDestinationEndpoint(), sender, apsFrame.getCluster(),
          apsFrame.getApsCounter(), (byte) 0x30, (byte) apsFrame.getRadius(), apsFrame.getPayload()));
    } else {
      networkManager.sendCommand(new AF_DATA_REQUEST_EXT(apsFrame.getDestinationAddress(), sender,
          apsFrame.getCluster(), apsFrame.getApsCounter(), (byte) (0), (byte) 0, apsFrame.getPayload()));
    }
  }
}

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

@Test
public void testReceive() {
  ZToolPacket data = getPacket("FE 15 45 FF 00 00 00 01 80 00 00 00 1B 00 5B 23 EB 09 00 4B 12 00 00 00 00 F6");
  ZigBeeApsFrame apsFrame = ZdoCallbackIncoming.create(data);
  assertEquals(0x8001, apsFrame.getCluster());
  assertEquals(0x0000, apsFrame.getSourceAddress());
  assertEquals(0, apsFrame.getProfile());
  assertEquals(0, apsFrame.getDestinationEndpoint());
  assertTrue(Arrays.equals(getPacketData("1B 00 5B 23 EB 09 00 4B 12 00 00 00 00"), apsFrame.getPayload()));
}

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

@Test
public void testSendCommandZCL() {
  ZigBeeNetworkManager networkManager = mockZigBeeNetworkManager();
  networkManager.setSerializer(DefaultSerializer.class, DefaultDeserializer.class);
  ZigBeeEndpointAddress deviceAddress = new ZigBeeEndpointAddress(1234, 56);
  OnCommand cmd = new OnCommand();
  cmd.setClusterId(6);
  cmd.setDestinationAddress(deviceAddress);
  boolean error = false;
  networkManager.sendCommand(cmd);
  assertFalse(error);
  assertEquals(1, mockedApsFrameListener.getAllValues().size());
  ZigBeeApsFrame apsFrame = mockedApsFrameListener.getValue();
  assertEquals(ZigBeeNwkAddressMode.DEVICE, apsFrame.getAddressMode());
  assertEquals(1234, apsFrame.getDestinationAddress());
  assertEquals(0, apsFrame.getSourceAddress());
  assertEquals(0x104, apsFrame.getProfile());
  assertEquals(6, apsFrame.getCluster());
  assertEquals(56, apsFrame.getDestinationEndpoint());
}

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

@Override
public void sendCommand(final ZigBeeApsFrame apsFrame) {
  ConBeeEnqueueSendDataRequest request = new ConBeeEnqueueSendDataRequest();
  request.setRequestId(apsFrame.getApsCounter());
  request.setClusterId(apsFrame.getCluster());
  switch (apsFrame.getAddressMode()) {
    case DEVICE:
      request.setDestinationAddress(
          new ZigBeeEndpointAddress(apsFrame.getDestinationAddress(), apsFrame.getDestinationEndpoint()));
      request.setDestinationAddressMode(ConBeeAddressMode.NWK);
      if (apsFrame.getDestinationAddress() > 0xfff8) {
        //
        request.setTxOptions(0);
      }
      break;
    case GROUP:
      request.setDestinationAddress(new ZigBeeGroupAddress(apsFrame.getDestinationAddress()));
      request.setDestinationAddressMode(ConBeeAddressMode.GROUP);
      break;
    default:
      break;
  }
  request.setProfileId(apsFrame.getProfile());
  request.setRadius(apsFrame.getRadius());
  request.setSourceEndpoint(apsFrame.getSourceEndpoint());
  // request.setTxOptions(txOptions);
  request.setAdsuData(apsFrame.getPayload());
  conbeeHandler.queueFrame(request);
}

相关文章