Skip to content

Driver Info

Asset links identify themselves towards the gRPC server regsitry via the Driver Info API

API Description

Protobuf Specification

DriverInfoApi

=========================================== The Services Definition

GetVersionInfo

rpc GetVersionInfo(GetVersionInfoRequest) GetVersionInfoResponse

Possible return values - OK

GetConfigSchema

rpc GetConfigSchema(GetConfigSchemaRequest) GetConfigSchemaResponse

Possible return values - OK - FAILED_PRECONDITION - no local configuration available (or accessible)

GetAppIcon

rpc GetAppIcon(GetAppIconRequest) GetAppIconResponse

implementation of this call is optional Possible return values - OK - UNIMPLEMENTED - function not supported - INVALID_ARGUMENT - parameters are wrong - FAILED_PRECONDITION - icon not available

Messages

ConfigSchema {#configschema}

Field Type Description
uri string URI of the schema
schema string JSON string with configuration schema

GetAppIconRequest {#getappiconrequest}

================================================================== Get Icon

List of supported image formats by the client e.g. ["svg+xml", "png"] The list is sorted in the order of preferences (most preferred at the beginning). Support of "png" is mandatory by the server and the client, that means it shall always be contained in this list. When the client omits "png" from the list, the server is nervertheless allowed to return "png" because this is mandatory. For all other image formats the server shall only return a format which is contained in the list and fall back to "png" when nothing else matches. The format names are according to image mime-type defined by https://www.iana.org/assignments/media-types/media-types.xhtml#image but without the "image/" prefix because that is obligatory. repeated string supported_image_formats = 1;

GetAppIconResponse {#getappiconresponse}

Field Type Description
image_format string Image format of the returned image. The aspect rate of the image shall be 1:1 that means a square image. Server should select the format with best fit for the client request (best effort, don't scale the image to this size!). The format names are according to image mime-type defined by https://www.iana.org/assignments/media-types/media-types.xhtml#image but without the "image/" prefix because that is obligatory. e.g. "png" or "svg+xml" At the moment the only supported format is "png". We will decide in future if we support more formats and introduce 'supported_image_formats' in the request then.
image_data bytes Byte array containing the image data

GetConfigSchemaRequest {#getconfigschemarequest}

================================================================== Config Schema

void

GetConfigSchemaResponse {#getconfigschemaresponse}

Field Type Description
schemas repeated ConfigSchema configuration schema(s)

GetVersionInfoRequest {#getversioninforequest}

================================================================== Driver Version

void

GetVersionInfoResponse {#getversioninforesponse}

Field Type Description
version VersionInfo version information

VersionInfo {#versioninfo}

Version Info

Field Type Description
major uint32 Version numbering according 'Semantic Versioning' (see https://semver.org/) Major - increment for incompatible API changes
minor uint32 Minor - increment for added functionality in a backwards compatible manner
patch uint32 Patch - increment for backwards compatible bug fixes
suffix string Suffix - containing Build number and/or pre-release version. According to the version definition of Industrial Edge OR to https://semver.org/ Don't expect the string to strictly follow semver, especially for checking which version is newer!!!!! Can be an empty string. Industrial Edge always uses "-" as the first character which is a violation of semver! Here some examples for Industrial Edge version suffixes: - "" - "-0" - "-1" - "-rc.1" - "-rc.1.alpha.23773115" - "-beta.2.rc.23652691" - "-3.0"
vendor_name string vendor name, e.g. "Siemens AG"
product_name string product name, e.g. "SIMATIC S7+ Connector"
product_description string description of the application, e.g. "Connector for SIMATIC S7-1200 and S7-1500 PLCs using S7+ protocol"
docu_url string the documentation URL of the driver e.g. the company webpage with a deep link directly the docu
feedback_url string feedback url for customers, it's different for different products

Enums

Scalar Value Types

.proto Type Notes C++ Type Java Type Python Type

double
double double float

float
float float float

int32
Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint32 instead. int32 int int

int64
Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint64 instead. int64 long int/long

uint32
Uses variable-length encoding. uint32 int int/long

uint64
Uses variable-length encoding. uint64 long int/long

sint32
Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int32s. int32 int int

sint64
Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int64s. int64 long int/long

fixed32
Always four bytes. More efficient than uint32 if values are often greater than 2^28. uint32 int int

fixed64
Always eight bytes. More efficient than uint64 if values are often greater than 2^56. uint64 long int/long

sfixed32
Always four bytes. int32 int int

sfixed64
Always eight bytes. int64 long int/long

bool
bool boolean boolean

string
A string must always contain UTF-8 encoded or 7-bit ASCII text. string String str/unicode

bytes
May contain any arbitrary sequence of bytes. string ByteString str

Any questions left?

Ask the community