use of com.arm.mbed.cloud.sdk.devicedirectory.model.Device in project mbed-cloud-sdk-java by ARMmbed.
the class ConnectExamples method managePresubscription.
/**
* Creates, updates and deletes a presubscription.
*/
@SuppressWarnings("null")
@Example
public void managePresubscription() {
ConnectionOptions config = Configuration.get();
Connect api = new Connect(config);
try {
// Listing already defined presubscriptions.
List<Presubscription> listPresubscriptions = api.listPresubscriptions();
for (Presubscription presubscription : listPresubscriptions) {
log("Already defined presubscription", presubscription);
}
// Getting a connected device.
DeviceListOptions options = new DeviceListOptions();
options.setLimit(Integer.valueOf(1));
Paginator<Device> deviceIterator = api.listAllConnectedDevices(options);
if (!deviceIterator.hasNext()) {
fail("No endpoints registered. Aborting.");
}
Device device = deviceIterator.next();
log("Device", device);
// Adding presubscriptions on all observable resources of a device.
List<Resource> observableResources = api.listObservableResources(device);
if (observableResources == null) {
fail("There is no observable resources on this device");
}
List<Presubscription> newPresubscriptions = new LinkedList<>();
for (Resource resourceToSubscribeTo : observableResources) {
Presubscription presubscription = new Presubscription(resourceToSubscribeTo);
newPresubscriptions.add(presubscription);
log("New presubscription", presubscription);
}
api.updatePresubscriptions(newPresubscriptions);
// Listing all defined presubscriptions.
listPresubscriptions = api.listPresubscriptions();
for (Presubscription presubscription : listPresubscriptions) {
log("Newly defined presubscription", presubscription);
}
// Deleting all presubscriptions present on the system.
api.deletePresubscriptions();
} catch (Exception e) {
logError("last API Metadata", api.getLastApiMetadata());
fail(e.getMessage());
}
}
use of com.arm.mbed.cloud.sdk.devicedirectory.model.Device in project mbed-cloud-sdk-java by ARMmbed.
the class ConnectExamples method subscribeToResourcesWithCallbacks.
/**
* Subscribes to a resource with callbacks.
*/
@SuppressWarnings({ "boxing", "null" })
@Example
public void subscribeToResourcesWithCallbacks() {
ConnectionOptions config = Configuration.get();
Connect api = new Connect(config);
try {
// Getting a connected device.
DeviceListOptions options = new DeviceListOptions();
options.setLimit(1);
Paginator<Device> deviceIterator = api.listAllConnectedDevices(options);
if (!deviceIterator.hasNext()) {
fail("No endpoints registered. Aborting.");
}
Device device = deviceIterator.next();
log("Device", device);
List<Resource> observableResources = api.listObservableResources(device);
if (observableResources == null) {
fail("There is no observable resources on this device");
}
for (final Resource resourceToSubscribeTo : observableResources) {
log("Resource suscribed", resourceToSubscribeTo);
// Creating a subscriber for each resource.
if (resourceToSubscribeTo != null) {
// Defining callbacks.
Callback<Object> onNotificationCallback = new Callback<Object>() {
@Override
public void execute(Object arg) {
log("Received notification value for " + resourceToSubscribeTo + " using callbacks", arg);
}
};
Callback<Throwable> onErrorCallback = new Callback<Throwable>() {
@Override
public void execute(Throwable t) {
log("Received following error for " + resourceToSubscribeTo, t);
}
};
api.addResourceSubscription(resourceToSubscribeTo, onNotificationCallback, onErrorCallback);
}
}
// Listening to notifications for 2 minutes.
api.startNotifications();
Thread.sleep(120000);
// Stopping notification pull channel.
api.stopNotifications();
Thread.sleep(100);
api.shutdownConnectService();
} catch (Exception e) {
e.printStackTrace();
logError("last API Metadata", api.getLastApiMetadata());
try {
api.stopNotifications();
Thread.sleep(100);
} catch (Exception e1) {
e1.printStackTrace();
}
api.shutdownConnectService();
fail(e.getMessage());
}
}
use of com.arm.mbed.cloud.sdk.devicedirectory.model.Device in project mbed-cloud-sdk-java by ARMmbed.
the class ConnectExamples method subscribeToResourcesWithObservableStreams.
/**
* Subscribes to a resource with observable streams.
* <p>
* Note: for more information about observable streams, see also <a href="http://reactivex.io/">Reactive X</a>
*/
@SuppressWarnings({ "boxing", "null" })
@Example
public void subscribeToResourcesWithObservableStreams() {
ConnectionOptions config = Configuration.get();
Connect api = new Connect(config);
try {
// Getting a connected device.
DeviceListOptions options = new DeviceListOptions();
options.setLimit(1);
Paginator<Device> deviceIterator = api.listAllConnectedDevices(options);
if (!deviceIterator.hasNext()) {
fail("No endpoints registered. Aborting.");
}
Device device = deviceIterator.next();
log("Device", device);
List<Resource> observableResources = api.listObservableResources(device);
if (observableResources == null) {
fail("There is no observable resources on this device");
}
for (Resource resourceToSubscribeTo : observableResources) {
log("Resource suscribed", resourceToSubscribeTo);
// Adding subscription for each resource.
if (resourceToSubscribeTo != null) {
api.addResourceSubscription(resourceToSubscribeTo, BackpressureStrategy.BUFFER).subscribe(generateSubscriptionConsumer(resourceToSubscribeTo));
}
}
// Listening to notifications for 2 minutes.
api.startNotifications();
Thread.sleep(120000);
// Stopping notification pull channel.
api.stopNotifications();
Thread.sleep(100);
api.shutdownConnectService();
} catch (Exception e) {
e.printStackTrace();
logError("last API Metadata", api.getLastApiMetadata());
try {
api.stopNotifications();
Thread.sleep(100);
} catch (Exception e1) {
e1.printStackTrace();
}
api.shutdownConnectService();
fail(e.getMessage());
}
}
use of com.arm.mbed.cloud.sdk.devicedirectory.model.Device in project mbed-cloud-sdk-java by ARMmbed.
the class DeviceDirectoryExamples method listDeregisteredDevices.
/**
* Lists the first 5 deregistered devices.
*/
@SuppressWarnings("boxing")
@Example
public void listDeregisteredDevices() {
ConnectionOptions config = Configuration.get();
DeviceDirectory api = new DeviceDirectory(config);
try {
// Defining query options.
DeviceListOptions options = new DeviceListOptions();
options.setLimit(5);
options.addStateFilter(DeviceState.DEREGISTERED, FilterOperator.EQUAL);
// Listing deregistered devices.
ListResponse<Device> devices = api.listDevices(options);
for (Device device : devices.getData()) {
log("Deregistered device", device);
}
} catch (Exception e) {
logError("last API Metadata", api.getLastApiMetadata());
fail(e.getMessage());
}
}
use of com.arm.mbed.cloud.sdk.devicedirectory.model.Device in project mbed-cloud-sdk-java by ARMmbed.
the class DeviceDirectoryExamples method listDevices.
/**
* Lists the last 5 devices.
*/
@SuppressWarnings("boxing")
@Example
public void listDevices() {
ConnectionOptions config = Configuration.get();
DeviceDirectory api = new DeviceDirectory(config);
try {
// Defining query options.
DeviceListOptions options = new DeviceListOptions();
options.setLimit(5);
options.setOrder(Order.DESC);
// Listing devices.
ListResponse<Device> devices = api.listDevices(options);
for (Device device : devices.getData()) {
log("Device", device);
}
} catch (Exception e) {
logError("last API Metadata", api.getLastApiMetadata());
fail(e.getMessage());
}
}
Aggregations