@Test public void test() { BindingTable table = new BindingTable(); System.out.println(table); } }
@Override public void process(ZigBeeNetworkManager networkManager, String[] args, PrintStream out) throws IllegalArgumentException, InterruptedException, ExecutionException { if (args.length != 2) { throw new IllegalArgumentException("Invalid number of arguments"); } ZigBeeNode node = getNode(networkManager, args[1]); final Boolean result = node.updateBindingTable().get(); if (!result) { out.println("Binding table read error"); return; } out.println("Binding table for node " + node.getNetworkAddress() + " [" + node.getIeeeAddress() + "]"); if (node.getBindingTable().isEmpty()) { out.println("--- Empty"); return; } out.println("Src Address | Dest Address | Group | Mode | Cluster"); for (BindingTable entry : node.getBindingTable()) { out.println(String .format("%s | %20s | %5s | %-7s | %04X:%s", getAddress(entry.getSrcAddr(), entry.getSrcEndpoint()), entry.getDstAddrMode() == 3 ? getAddress(entry.getDstNodeAddr(), entry.getDstNodeEndpoint()) : "", entry.getDstAddrMode() == 1 ? Integer.toString(entry.getDstGroupAddr()) : "", getAddressMode(entry.getDstAddrMode()), entry.getClusterId(), ZclClusterType.getValueById(entry.getClusterId()))); } }
break; case BINDING_TABLE: BindingTable bindingTable = new BindingTable(); bindingTable.deserialize(this); value[0] = bindingTable; break;
@Test public void testReceive() { int[] packet = getPacketData("00 00 01 00 01 43 1D A5 00 AA 3E B0 7C 03 06 00 03 62 39 05 0D 00 6F 0D 00 01"); ManagementBindResponse response = new ManagementBindResponse(); DefaultDeserializer deserializer = new DefaultDeserializer(packet); ZclFieldDeserializer fieldDeserializer = new ZclFieldDeserializer(deserializer); response.deserialize(fieldDeserializer); System.out.println(response); assertEquals(1, (int) response.getBindingTableEntries()); assertEquals(0, (int) response.getStartIndex()); List<BindingTable> table = response.getBindingTableList(); assertEquals(1, table.size()); BindingTable entry = table.get(0); assertEquals(6, entry.getClusterId()); assertEquals(3, entry.getDstAddrMode()); assertEquals(new IeeeAddress("7CB03EAA00A51D43"), entry.getSrcAddr()); assertEquals(3, entry.getSrcEndpoint()); assertEquals(new IeeeAddress("000D6F000D053962"), entry.getDstNodeAddr()); assertEquals(1, entry.getDstNodeEndpoint()); } }