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.
Difference between revisions of "BaSyx.Examples.Snippets.AASConnection.Java"
(Initial page) |
(No difference)
|
Revision as of 17:28, 12 June 2019
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:
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 |