Search in sources :

Example 1 with DeviceListOptions

use of com.arm.mbed.cloud.sdk.devicedirectory.model.DeviceListOptions in project mbed-cloud-sdk-java by ARMmbed.

the class DeviceDirectory method listDevicesWithExtraFilters.

protected ListResponse<Device> listDevicesWithExtraFilters(String functionName, DeviceListOptions options, Filter additionalFilter) throws MbedCloudException {
    final DeviceListOptions finalOptions = (options == null) ? new DeviceListOptions() : options;
    finalOptions.addFilter(additionalFilter);
    return CloudCaller.call(this, functionName, DeviceAdapter.getListMapper(), new CloudCall<DevicePage>() {

        @Override
        public Call<DevicePage> call() {
            return endpoint.getDirectory().deviceList(finalOptions.getLimit(), finalOptions.getOrder().toString(), finalOptions.getAfter(), DeviceAdapter.FILTERS_MARSHALLER.encode(finalOptions.getFilter()), finalOptions.encodeInclude());
        }
    });
}
Also used : CloudCall(com.arm.mbed.cloud.sdk.common.CloudCaller.CloudCall) Call(retrofit2.Call) DevicePage(com.arm.mbed.cloud.sdk.internal.devicedirectory.model.DevicePage) DeviceListOptions(com.arm.mbed.cloud.sdk.devicedirectory.model.DeviceListOptions)

Example 2 with DeviceListOptions

use of com.arm.mbed.cloud.sdk.devicedirectory.model.DeviceListOptions 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());
    }
}
Also used : Device(com.arm.mbed.cloud.sdk.devicedirectory.model.Device) Connect(com.arm.mbed.cloud.sdk.Connect) Resource(com.arm.mbed.cloud.sdk.connect.model.Resource) ConnectionOptions(com.arm.mbed.cloud.sdk.common.ConnectionOptions) DeviceListOptions(com.arm.mbed.cloud.sdk.devicedirectory.model.DeviceListOptions) Presubscription(com.arm.mbed.cloud.sdk.connect.model.Presubscription) LinkedList(java.util.LinkedList) MbedCloudException(com.arm.mbed.cloud.sdk.common.MbedCloudException) AbstractExample(utils.AbstractExample) Example(utils.Example)

Example 3 with DeviceListOptions

use of com.arm.mbed.cloud.sdk.devicedirectory.model.DeviceListOptions 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());
    }
}
Also used : Device(com.arm.mbed.cloud.sdk.devicedirectory.model.Device) Connect(com.arm.mbed.cloud.sdk.Connect) Resource(com.arm.mbed.cloud.sdk.connect.model.Resource) MbedCloudException(com.arm.mbed.cloud.sdk.common.MbedCloudException) Callback(com.arm.mbed.cloud.sdk.common.Callback) ConnectionOptions(com.arm.mbed.cloud.sdk.common.ConnectionOptions) DeviceListOptions(com.arm.mbed.cloud.sdk.devicedirectory.model.DeviceListOptions) AbstractExample(utils.AbstractExample) Example(utils.Example)

Example 4 with DeviceListOptions

use of com.arm.mbed.cloud.sdk.devicedirectory.model.DeviceListOptions 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());
    }
}
Also used : Device(com.arm.mbed.cloud.sdk.devicedirectory.model.Device) Connect(com.arm.mbed.cloud.sdk.Connect) Resource(com.arm.mbed.cloud.sdk.connect.model.Resource) ConnectionOptions(com.arm.mbed.cloud.sdk.common.ConnectionOptions) DeviceListOptions(com.arm.mbed.cloud.sdk.devicedirectory.model.DeviceListOptions) MbedCloudException(com.arm.mbed.cloud.sdk.common.MbedCloudException) AbstractExample(utils.AbstractExample) Example(utils.Example)

Example 5 with DeviceListOptions

use of com.arm.mbed.cloud.sdk.devicedirectory.model.DeviceListOptions 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());
    }
}
Also used : DeviceDirectory(com.arm.mbed.cloud.sdk.DeviceDirectory) Device(com.arm.mbed.cloud.sdk.devicedirectory.model.Device) ConnectionOptions(com.arm.mbed.cloud.sdk.common.ConnectionOptions) DeviceListOptions(com.arm.mbed.cloud.sdk.devicedirectory.model.DeviceListOptions) MbedCloudException(com.arm.mbed.cloud.sdk.common.MbedCloudException) AbstractExample(utils.AbstractExample) Example(utils.Example)

Aggregations

DeviceListOptions (com.arm.mbed.cloud.sdk.devicedirectory.model.DeviceListOptions)12 ConnectionOptions (com.arm.mbed.cloud.sdk.common.ConnectionOptions)10 MbedCloudException (com.arm.mbed.cloud.sdk.common.MbedCloudException)10 Device (com.arm.mbed.cloud.sdk.devicedirectory.model.Device)10 AbstractExample (utils.AbstractExample)10 Example (utils.Example)10 Connect (com.arm.mbed.cloud.sdk.Connect)7 Resource (com.arm.mbed.cloud.sdk.connect.model.Resource)6 DeviceDirectory (com.arm.mbed.cloud.sdk.DeviceDirectory)3 TimePeriod (com.arm.mbed.cloud.sdk.common.TimePeriod)2 Callback (com.arm.mbed.cloud.sdk.common.Callback)1 CloudCall (com.arm.mbed.cloud.sdk.common.CloudCaller.CloudCall)1 Presubscription (com.arm.mbed.cloud.sdk.connect.model.Presubscription)1 Query (com.arm.mbed.cloud.sdk.devicedirectory.model.Query)1 DevicePage (com.arm.mbed.cloud.sdk.internal.devicedirectory.model.DevicePage)1 Date (java.util.Date)1 GregorianCalendar (java.util.GregorianCalendar)1 LinkedList (java.util.LinkedList)1 Test (org.junit.Test)1 Call (retrofit2.Call)1