Skip to main content

Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

BaSyx.Examples.Snippets.AASConnection.Java

Revision as of 17:28, 12 June 2019 by Thomas.kuhn.iese.fraunhofer.de (Talk | contribs) (Initial page)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

This code snippet illustrates the connection to an Asset Administration Shell (AAS) sub model using the Java SDK with the ConnectedAssetAdministrationShellManager class. It illustrates the connection to a sub model with a known ID, as well as reading and updating of properties. It also illustrates connection to meta properties.

The BaSys setup for this code snippet is the following:

BaSyx.Snippet.AASConnectorConnection.Java.png


The BaSys setup consists of a Apache Tomcat server that runs BaSyx Servlets. It contains a sub model provider that exports an example sub model (see here for example). The snippet code runs in context of an application. The application contains the example code and a precompiled BaSyx directory that is used for resolving AAS and sub model IDs to network addresses. The application code accesses the AAS sub model:

// Create manager using the directory stub an the HTTPConnectorProvider
ConnectedAssetAdministrationShellManager manager = new ConnectedAssetAdministrationShellManager(connManager);
 
 
// Create and connect SDK connector
ISubModel subModel = manager.retrieveSM("sm-001");
 
// - Retrieve sub model values and compare to expected values
assertTrue(subModel.getId().equals("sm-001"));
assertTrue(subModel.getProperties().get("prop1").getId().equals("prop1"));
assertTrue((int) ((ISingleProperty) subModel.getProperties().get("prop1")).get() == 234);
assertTrue((int) ((ISingleProperty) subModel.getProperties().get("prop3")).get() == 17);
assertTrue(subModel.getProperties().get("prop2").getId().equals("prop2"));
assertTrue((int) ((ISingleProperty) ((IContainerProperty) subModel.getProperties().get("prop2")).getProperties().get("prop11")).get() == 123);


The code first creates a connected Asset Administration Shell manager that creates connections to Asset Administration Shells and AAS sub models. It uses a ConnectionManager class to create the connection and to resolve AAS and sub model IDs:

// Create manager using the directory stub an the HTTPConnectorProvider
ConnectedAssetAdministrationShellManager manager = new ConnectedAssetAdministrationShellManager(connManager);


The following code connects to the sub model with ID "sm-001". It returns a ISubModel instance that provides a local proxy for the remote sub model.

// Create and connect SDK connector
ISubModel subModel = manager.retrieveSM("sm-001");


The following code accesses the meta property idShort of the sub model and compares its value to the expected value "sm-001"

// - Retrieve sub model values and compare to expected values
assertTrue(subModel.getId().equals("sm-001"));


The following code accesses the meta property idShort of the sub model property "prop1" and compares its value to the expected value "prop1"

// - Retrieve sub model values and compare to expected values
assertTrue(subModel.getProperties().get("prop1").getId().equals("prop1"));


The following code accesses the values of properties "prop1" and "prop3" of the connected sub model compares their values to expected values.

// - Retrieve sub model values and compare to expected values
assertTrue((int) ((ISingleProperty) subModel.getProperties().get("prop1")).get() == 234);
assertTrue((int) ((ISingleProperty) subModel.getProperties().get("prop3")).get() == 17);


The following code accesses the idShort meta property of property "prop2", as well as the contained property "prop11". Both requested values are compared to expected values.

assertTrue(subModel.getProperties().get("prop2").getId().equals("prop2"));
assertTrue((int) ((ISingleProperty) ((IContainerProperty) subModel.getProperties().get("prop2")).getProperties().get("prop11")).get() == 123);


The complete, executable code is available in the basyx.examples project in package <<<>>>.


BaSyx project links: Project BaSyx main wiki page | What is BaSyx? | BaSyx Developer Documentation

Copyright © Eclipse Foundation, Inc. All Rights Reserved.