public static IoTFieldsExtension buildFor(int seqNr, boolean done, NodeInfo nodeInfo, List<? extends IoTDataField> data) { TimestampElement timestampElement = new TimestampElement(new Date(), data); NodeElement nodeElement = new NodeElement(nodeInfo, timestampElement); return new IoTFieldsExtension(seqNr, done, nodeElement); }
@Override protected boolean acceptSpecific(Message message) { IoTFieldsExtension iotFieldsExtension = IoTFieldsExtension.from(message); if (iotFieldsExtension == null) { return false; } if (iotFieldsExtension.getSequenceNr() != seqNr) { return false; } if (onlyDone && !iotFieldsExtension.isDone()) { return false; } return true; }
for (int i = 0; i < collectedCount; i++) { Message message = dataCollector.pollResult(); IoTFieldsExtension iotFieldsExtension = IoTFieldsExtension.from(message); res.add(iotFieldsExtension);
@Override public void iotScenario(XMPPTCPConnection dataThingConnection, XMPPTCPConnection readingThingConnection) throws TimeoutException, Exception { ThingState dataThingState = actAsDataThing(dataThingConnection); final SimpleResultSyncPoint syncPoint = new SimpleResultSyncPoint(); dataThingState.setThingStateChangeListener(new AbstractThingStateChangeListener() { @Override public void owned(BareJid jid) { syncPoint.signal(); } }); // Wait until the thing is owned. syncPoint.waitForResult(TIMEOUT); printStatus("OWNED - Thing now owned by " + dataThingState.getOwner()); // Make sure things are befriended. IoTProvisioningManager readingThingProvisioningManager = IoTProvisioningManager.getInstanceFor(readingThingConnection); readingThingProvisioningManager.sendFriendshipRequestIfRequired(dataThingConnection.getUser().asBareJid()); Roster dataThingRoster = Roster.getInstanceFor(dataThingConnection); RosterUtil.waitUntilOtherEntityIsSubscribed(dataThingRoster, readingThingConnection.getUser().asBareJid(), TIMEOUT); printStatus("FRIENDSHIP ACCEPTED - Trying to read out data"); IoTDataManager readingThingDataManager = IoTDataManager.getInstanceFor(readingThingConnection); List<IoTFieldsExtension> values = readingThingDataManager.requestMomentaryValuesReadOut(dataThingConnection.getUser()); if (values.size() != 1) { throw new IllegalStateException("Unexpected number of values returned: " + values.size()); } IoTFieldsExtension field = values.get(0); printStatus("DATA READ-OUT SUCCESS: " + field.toXML(null)); printStatus("IoT SCENARIO FINISHED SUCCESSFULLY"); } };
List<NodeElement> nodes = iotFieldsExtension.getNodes();
for (int i = 0; i < collectedCount; i++) { Message message = dataCollector.pollResult(); IoTFieldsExtension iotFieldsExtension = IoTFieldsExtension.from(message); res.add(iotFieldsExtension);
@Override protected boolean acceptSpecific(Message message) { IoTFieldsExtension iotFieldsExtension = IoTFieldsExtension.from(message); if (iotFieldsExtension == null) { return false; } if (iotFieldsExtension.getSequenceNr() != seqNr) { return false; } if (onlyDone && !iotFieldsExtension.isDone()) { return false; } return true; }
@Override public IoTFieldsExtension parse(XmlPullParser parser, int initialDepth) throws Exception { int seqNr = ParserUtils.getIntegerAttributeOrThrow(parser, "seqnr", "IoT data request <accepted/> without sequence number"); boolean done = ParserUtils.getBooleanAttribute(parser, "done", false); List<NodeElement> nodes = new ArrayList<>(); outerloop: while (true) { final int eventType = parser.next(); final String name = parser.getName(); switch (eventType) { case XmlPullParser.START_TAG: switch (name) { case NodeElement.ELEMENT: NodeElement node = parseNode(parser); nodes.add(node); break; } break; case XmlPullParser.END_TAG: if (parser.getDepth() == initialDepth) { break outerloop; } break; } } return new IoTFieldsExtension(seqNr, done, nodes); }
public static IoTFieldsExtension buildFor(int seqNr, boolean done, NodeInfo nodeInfo, List<? extends IoTDataField> data) { TimestampElement timestampElement = new TimestampElement(new Date(), data); NodeElement nodeElement = new NodeElement(nodeInfo, timestampElement); return new IoTFieldsExtension(seqNr, done, nodeElement); }
@Override public IoTFieldsExtension parse(XmlPullParser parser, int initialDepth) throws Exception { int seqNr = ParserUtils.getIntegerAttributeOrThrow(parser, "seqnr", "IoT data request <accepted/> without sequence number"); boolean done = ParserUtils.getBooleanAttribute(parser, "done", false); List<NodeElement> nodes = new ArrayList<>(); outerloop: while (true) { final int eventType = parser.next(); final String name = parser.getName(); switch (eventType) { case XmlPullParser.START_TAG: switch (name) { case NodeElement.ELEMENT: NodeElement node = parseNode(parser); nodes.add(node); break; } break; case XmlPullParser.END_TAG: if (parser.getDepth() == initialDepth) { break outerloop; } break; } } return new IoTFieldsExtension(seqNr, done, nodes); }