@Test public void testDeserialize() { int[] packet = getPacketData("B1 68 DE 3A 00 00 00 00 86 06 00 00 00 EE 1F 00 A9 44 25 02 0F E2"); DefaultDeserializer deserializer = new DefaultDeserializer(packet); NeighborTable neighbor = new NeighborTable(); neighbor.deserialize(deserializer); assertEquals(LogicalType.ROUTER, neighbor.getDeviceType()); assertEquals(new IeeeAddress("001FEE0000000686"), neighbor.getExtendedAddress()); assertEquals(new ExtendedPanId("3ADE68B1"), neighbor.getExtendedPanId()); assertEquals(NeighborTableRelationship.SIBLING, neighbor.getRelationship()); assertEquals(Integer.valueOf(17577), neighbor.getNetworkAddress()); assertEquals(NeighborTableJoining.UNKNOWN, neighbor.getPermitJoining()); assertEquals(NeighborTableRxState.RX_ON, neighbor.getRxOnWhenIdle()); assertEquals(Integer.valueOf(15), neighbor.getDepth()); assertEquals(Integer.valueOf(226), neighbor.getLqi()); }
private NeighborTable getNeighborTable(int[] packet) { DefaultDeserializer deserializer = new DefaultDeserializer(packet); NeighborTable neighbor = new NeighborTable(); neighbor.deserialize(deserializer); return neighbor; }
object.put("address", neighbor.getNetworkAddress()); object.put("macaddress", neighbor.getExtendedAddress()); object.put("depth", neighbor.getDepth()); object.put("lqi", neighbor.getLqi()); object.put("joining", neighbor.getPermitJoining()); jsonBuilder.append(ZigBeeBindingConstants.propertiesToJson(object));
@Test public void testReceive() { // Short response - ie not extended int[] packet = getPacketData( "00 00 02 00 02 14 D4 F1 02 00 4B 12 00 0B 88 DC 00 01 88 17 00 8F 22 15 02 01 3B 14 D4 F1 02 00 4B 12 00 EC A1 A5 01 00 8D 15 00 35 38 15 02 01 58"); ManagementLqiResponse lqiResponse = new ManagementLqiResponse(); DefaultDeserializer deserializer = new DefaultDeserializer(packet); ZclFieldDeserializer fieldDeserializer = new ZclFieldDeserializer(deserializer); lqiResponse.deserialize(fieldDeserializer); System.out.println(lqiResponse); assertEquals(2, (int) lqiResponse.getNeighborTableEntries()); assertEquals(0, (int) lqiResponse.getStartIndex()); List<NeighborTable> neighbors = lqiResponse.getNeighborTableList(); assertEquals(2, neighbors.size()); assertEquals(59, (int) neighbors.get(0).getLqi()); assertEquals(NeighborTableJoining.UNKNOWN, neighbors.get(0).getPermitJoining()); assertEquals(1, (int) neighbors.get(0).getDepth()); assertEquals(NeighborTableRelationship.CHILD, neighbors.get(0).getRelationship()); assertEquals(LogicalType.ROUTER, neighbors.get(0).getDeviceType()); assertEquals(NeighborTableRxState.RX_ON, neighbors.get(0).getRxOnWhenIdle()); assertEquals(new IeeeAddress("0017880100DC880B"), neighbors.get(0).getExtendedAddress()); } }
private NeighborTable getNeighborTable(Integer networkAddress, String ieeeAddressString, Integer lqi) { NeighborTable neighbor = new NeighborTable(); try { IeeeAddress ieeeAddress = new IeeeAddress(ieeeAddressString); Field fieldNetworkAddress = NeighborTable.class.getDeclaredField("networkAddress"); fieldNetworkAddress.setAccessible(true); fieldNetworkAddress.set(neighbor, networkAddress); Field fieldExtendedAddress = NeighborTable.class.getDeclaredField("extendedAddress"); fieldExtendedAddress.setAccessible(true); fieldExtendedAddress.set(neighbor, ieeeAddress); Field fieldLqi = NeighborTable.class.getDeclaredField("lqi"); fieldLqi.setAccessible(true); fieldLqi.set(neighbor, lqi); } catch (IllegalAccessException | IllegalArgumentException e) { e.printStackTrace(); } catch (SecurityException e) { e.printStackTrace(); } catch (NoSuchFieldException e) { e.printStackTrace(); } return neighbor; }
@Test public void testHashCodeAndEquals() { NeighborTable neighbor1 = getNeighborTable(12345, "123456789", 0); NeighborTable neighbor2 = getNeighborTable(12345, "123456789", 0); NeighborTable neighbor3 = getNeighborTable(54321, "987654321", 0); NeighborTable neighbor4 = getNeighborTable(54321, "987654321", 11); assertEquals(neighbor1.hashCode(), neighbor2.hashCode()); assertNotEquals(neighbor1.hashCode(), neighbor3.hashCode()); assertTrue(neighbor1.equals(neighbor2)); assertFalse(neighbor1.equals(neighbor3)); assertFalse(neighbor3.equals(neighbor4)); } }
object.put("address", neighbor.getNetworkAddress()); object.put("macaddress", neighbor.getExtendedAddress()); object.put("depth", neighbor.getDepth()); object.put("lqi", neighbor.getLqi()); object.put("joining", neighbor.getPermitJoining()); jsonBuilder.append(ZigBeeBindingConstants.propertiesToJson(object));
break; case NEIGHBOR_TABLE: NeighborTable neighborTable = new NeighborTable(); neighborTable.deserialize(this); value[0] = neighborTable; break;
private NeighborTable getNeighborTable(Integer networkAddress, String ieeeAddressString, Integer lqi) { NeighborTable neighbor = new NeighborTable(); try { IeeeAddress ieeeAddress = new IeeeAddress(ieeeAddressString); Field fieldNetworkAddress = NeighborTable.class.getDeclaredField("networkAddress"); fieldNetworkAddress.setAccessible(true); fieldNetworkAddress.set(neighbor, networkAddress); Field fieldExtendedAddress = NeighborTable.class.getDeclaredField("extendedAddress"); fieldExtendedAddress.setAccessible(true); fieldExtendedAddress.set(neighbor, ieeeAddress); Field fieldLqi = NeighborTable.class.getDeclaredField("lqi"); fieldLqi.setAccessible(true); fieldLqi.set(neighbor, lqi); } catch (IllegalAccessException | IllegalArgumentException e) { e.printStackTrace(); } catch (SecurityException e) { e.printStackTrace(); } catch (NoSuchFieldException e) { e.printStackTrace(); } return neighbor; }