Predix Edge Protocol Adapters Overview
Learn about where to download the Predix Edge Protocol Adapters and their corresponding sample configurations and understand how the blocks
section is used.
Protocol-Specific Information
Download the Adapters
The Protocol Translator Apps and sample configurations in the table below are stored in Artifactory. Use the following information to ensure you can access the apps.
To access Artifactory downloads, you will require a GE SSO (single sign-on) username and approval to access Artifactory.
Use the following steps to obtain a GE SSO if you do not already have one.
- Complete the Your GE SSO Account request form. All fields marked with a checkmark are required.
- Click Submit.
Request Artifactory Access
- Complete the Edge Artifactory Access Requests form.
- Click Submit.
Protocol Adapter Downloads
Deployment
Go to your specific adapter documentation for a sample docker-compose.yml file, and use it as you follow the Packaging and Deployment instructions.
Configuration
Each adapter requires a configuration file, and a sample is available in the documentation for each adapter. The samples are named config.json, but the file name can be changed, as long as the change is reflected in the docker-compose.yml. The configuration file is required as part of the Packaging and Deployment process.
The configuration file is a JSON file that contains two sections—blocks
and mappings
. The format is as follows:
{ "blocks": { ... }, "mappings": { ... } }
The Blocks Section
The blocks
section is used to initialize the blocks that will be used by the protocol translator. Declaring a block in this section will instantiate it but it will not wire it to any other blocks.
Every block must have a type
and config
field in the configuration file. The type
field defines what type of block is to be instantiated. The config
section defines the configuration fields for that block and will look different depending on the type
of the block. The config
section is passed to the block when it is instantiated.
In the example below, two blocks are defined—one named block1
of type fooblock
, and another named block2
of type barblock
.
{ "blocks": { "block1": { "type": "fooblock", "config": { ... } }, "block2": { "type": "barblock", "config": { ... } }, ... }, "mappings": { ... } }