use of com.arm.mbed.cloud.sdk.Connect in project mbed-cloud-sdk-java by ARMmbed.
the class ConnectExamples method listConnectedDevice.
/**
* Finds all devices currently connected and created in November 2017.
*/
@Example
public void listConnectedDevice() {
ConnectionOptions config = Configuration.get();
Connect api = new Connect(config);
try {
DeviceListOptions options = new DeviceListOptions();
options.addCreatedAtFilter(new GregorianCalendar(2017, 10, 1).getTime(), FilterOperator.GREATER_THAN);
options.addCreatedAtFilter(new GregorianCalendar(2017, 10, 30).getTime(), FilterOperator.LESS_THAN);
Paginator<Device> devices = api.listAllConnectedDevices(options);
for (Device device : devices) {
log("Connected device created in November 2017", device);
}
} catch (Exception e) {
fail(e.getMessage());
}
}
use of com.arm.mbed.cloud.sdk.Connect in project mbed-cloud-sdk-java by ARMmbed.
the class ConnectExamples method getResourceValue.
/**
* Gets a resource value.
*/
@SuppressWarnings("boxing")
@Example
public void getResourceValue() {
ConnectionOptions config = Configuration.get();
Connect api = new Connect(config);
// resource path to get value from
String resourcePath = "/5001/0/1";
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.first();
log("Device", device);
Resource resourceToConsider = api.getResource(device, resourcePath);
if (resourceToConsider == null) {
fail("The resource of interest does not exist on this device");
}
log("Resource of interest", resourceToConsider);
// Getting resource value
Object value = api.getResourceValue(resourceToConsider, new TimePeriod(10));
log("Resource value", value);
// Stopping potential daemons running
api.stopNotifications();
api.shutdownConnectService();
} catch (Exception e) {
e.printStackTrace();
logError("last API Metadata", api.getLastApiMetadata());
try {
api.stopNotifications();
} catch (MbedCloudException e1) {
e1.printStackTrace();
}
api.shutdownConnectService();
fail(e.getMessage());
}
}
use of com.arm.mbed.cloud.sdk.Connect in project mbed-cloud-sdk-java by ARMmbed.
the class ConnectExamples method setResourceValue.
/**
* Sets a resource value.
*/
@SuppressWarnings("boxing")
@Example
public void setResourceValue() {
ConnectionOptions config = Configuration.get();
Connect api = new Connect(config);
// writable resource path to set a value to
String resourcePath = "/5001/0/1";
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);
Resource resourceToConsider = api.getResource(device, resourcePath);
log("Resource of interest", resourceToConsider);
if (resourceToConsider == null) {
fail("The resource of interest does not exist on this device");
}
// Getting resource value
Object value = api.getResourceValue(resourceToConsider, new TimePeriod(10));
log("Current resource value", value);
// Setting a new resource value
api.setResourceValue(resourceToConsider, "10", new TimePeriod(10));
// Getting the modified resource value
value = api.getResourceValue(resourceToConsider, new TimePeriod(10));
log("Newly set resource value", value);
// Stopping potential daemons running
api.stopNotifications();
api.shutdownConnectService();
} catch (Exception e) {
e.printStackTrace();
logError("last API Metadata", api.getLastApiMetadata());
try {
api.stopNotifications();
} catch (MbedCloudException e1) {
e1.printStackTrace();
}
api.shutdownConnectService();
fail(e.getMessage());
}
}
use of com.arm.mbed.cloud.sdk.Connect in project mbed-cloud-sdk-java by ARMmbed.
the class ConnectExamples method injectNotifications.
/**
* Injects notifications to the notification system.
*/
@Example
public void injectNotifications() {
ConnectionOptions config = Configuration.get();
Connect api = new Connect(config);
try {
// Creating notifications.
String[] payloads = { "Q2hhbmdlIG1lIQ==", "VGhpcyBpcyB2YWx1ZSAy", "VGhpcyBpcyBhbm90aGVyIHZhbHVl", "VGhpcyB3aWxsIGJlIG15IGxhc3Qgbm90aWZpY2F0aW9uIGJlY2F1c2UgSSBhbSB3aWxsaW5nIHRvIGdvIGJhY2sgdG8gc2xlZXA=" };
List<String> payloadList = Arrays.asList(payloads);
String deviceId = "015f4ac587f500000000000100100249";
String resourcePath = "/3200/0/5501";
NotificationMessage notifications = new NotificationMessage();
for (String payload : payloadList) {
NotificationData notification = new NotificationData();
notification.setEp(deviceId);
notification.setPath(resourcePath);
notification.setPayload(payload);
notifications.addNotificationsItem(notification);
}
// Creating the same notifications but using their JSON representation instead.
String otherNotifications = "{\"notifications\":[{\"path\":\"/3200/0/5501\",\"payload\":\"Q2hhbmdlIG1lIQ\u003d\u003d\",\"ep\":\"015f4ac587f500000000000100100249\"},{\"path\":\"/3200/0/5501\",\"payload\":\"VGhpcyBpcyB2YWx1ZSAy\",\"ep\":\"015f4ac587f500000000000100100249\"}" + ",{\"path\":\"/3200/0/5501\",\"payload\":\"VGhpcyBpcyBhbm90aGVyIHZhbHVl\",\"ep\":\"015f4ac587f500000000000100100249\"},{\"path\":\"/3200/0/5501\",\"payload\":\"VGhpcyB3aWxsIGJlIG15IGxhc3Qgbm90aWZpY2F0aW9uIGJlY2F1c2UgSSBhbSB3aWxsaW5nIHRvIGdvIGJhY2sgdG8gc2xlZXA\u003d\",\"ep\":\"015f4ac587f500000000000100100249\"}]}";
Resource resource = new Resource(deviceId, resourcePath);
// Creating a subscriber for this resource.
api.createResourceSubscriptionObserver(resource, BackpressureStrategy.BUFFER).subscribe(new Consumer<Object>() {
@Override
public void accept(Object t) throws Exception {
log("Received notification value", t);
}
});
// Emitting notifications.
api.notify(notifications);
api.notify(otherNotifications);
} catch (Exception e) {
fail(e.getMessage());
}
}
use of com.arm.mbed.cloud.sdk.Connect in project mbed-cloud-sdk-java by ARMmbed.
the class ConnectExamples method listDeviceResources.
/**
* Lists device resources.
*/
@Example
public void listDeviceResources() {
ConnectionOptions config = Configuration.get();
Connect api = new Connect(config);
try {
// 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.first();
log("Device", device);
// Listing all device's resource.
List<Resource> resources = api.listResources(device);
for (Resource resource : resources) {
log("Resource present on device", resource);
}
} catch (Exception e) {
logError("last API Metadata", api.getLastApiMetadata());
fail(e.getMessage());
}
}
Aggregations