Device Identifier - Manual - Industrial Edge - Industrial Edge - Industrial Edge - Documentation of Industrial Edge APIs - CLI tools - Industrial Edge - References - APIs

Industrial Edge Platform Operation - APIs & References

Product
Industrial Edge
Edition
12/2024
Language
en-US (original)
// ------------------------------------------------------------------
// Common Definition of Device Identifiers
// ------------------------------------------------------------------


syntax = "proto3";

import "common_address.proto";

package siemens.common.identifiers.v1;


//===================================================================
// Identifiers Interface Definitions
//===================================================================


// ===========================================
// The Services Definition
//
service IdentifiersApi
{
    rpc GetIdentifiers( GetIdentifiersRequest ) returns( GetIdentifiersResponse ) {}
    rpc GetSupportedSemantics( GetSupportedSemanticsRequest ) returns( GetSupportedSemanticsResponse ) {}
}

// ==================================================================
// Get Identifiers Request
//
// Get specific identifiers, identified by their semantic meaning from a device (connection)

message IdentifierRequest {
    oneof identifier {
        // The specific identifier which is requested
        SemanticClassifier semantic = 1;
        // if a Identifier does not have a semantic mapping we can use the name of it as fallback
        string name = 2;
    }
}

message GetIdentifiersRequest {
    siemens.common.address.v1.Destination target = 1; //the device to which the nodes/data points belong
    repeated IdentifierRequest identifiers = 2; // if no specific identifiers are provided, all supported identifiers (see GetSupportedIdentifiers) are returned
}


message GetIdentifiersResponse {
   repeated DeviceIdentifier identifiers = 1;
}

// ==================================================================
// Get supported identifier
//
// Get the list of identifiers and their semantic meaning which are supported by the connector

message GetSupportedSemanticsRequest {
    // void
}

message GetSupportedSemanticsResponse {
  repeated SupportedSemantic supportedSemantic = 1;
}


// ==================================================================
// Identifier definitions
//

// This message type is defined to work-around missing
// support for "repeated oneof" in gRPC. See
// https://github.com/protocolbuffers/protobuf/issues/2592
// for further reference.
message DeviceIdentifierValueList {
    repeated DeviceIdentifier value = 1;
}

message DeviceIdentifier {
    // The RAW value of the identifier, read from the device (connection)
    oneof value {
        // Transfer any integer value up to 64 bit
        int64 int64_value = 2;
        // Transfer any unsigned integer value up to 64 bit
        uint64 uint64_value = 3;
        // Transfer any floating point value
        double float64_value = 4;
        // Transfer a UTF8-text
        string text = 5;
        // Raw data
        bytes raw_data = 6;
        // A list of child identifiers. This value type
        // can be used to transfer structured, hierarchical
        // information.
        // Example: Ethernet interface (parent identifier) with
        // its assigned IP addresses (child identifiers) and MAC
        // address (another child identifier).
        DeviceIdentifierValueList children = 7;
    }

    // List of semantic mappings for this identifier
    repeated SemanticClassifier classifiers = 8;
}

message SupportedSemantic {
    // Human readable name of the identifier, e.g. "Manufacturer"
    string name = 1;
    // List of semantic identifiers
    repeated SemanticClassifier classifiers = 2;
}

message SemanticClassifier {
    // The type of the semantic identifier
    // supported default classifier:
    // "IRDI": e.g. for "CDD" or "eClass" classifier)
    // "URI": e.g. for JSON-Link
    string type = 1;
    // The value of the semantic identifier, e.g. "0112/2///61987#ABA565#007" (IEC CDD/IRDI "Manufacturer")
    string value = 2;
}
Message Type Field Type Description
IdentifierRequest semantic SemanticClassifier The specific identifier which is requested
name string if a Identifier does not have a semantic mapping we can use the name of it as fallback
GetIdentifiersRequest target siemens.common.address.v1.Destination the device to which the nodes/data points belong
identifiers repeated IdentifierRequest if no specific identifiers are provided, all supported identifiers (see GetSupportedIdentifiers) are returned
GetIdentifiersResponse identifiers repeated DeviceIdentifier -
GetSupportedSemanticsResponse supportedSemantic repeated SupportedSemantic -
DeviceIdentifierValueList value repeated DeviceIdentifier -
DeviceIdentifier int64_value int64 Transfer any integer value up to 64 bit
uint64_value uint64 Transfer any unsigned integer value up to 64 bit
float64_value double Transfer any floating point value
text string Transfer a UTF8-text
raw_data bytes Raw data
children DeviceIdentifierValueList A list of child identifiers
classifiers repeated SemanticClassifier List of semantic mappings for this identifier
SupportedSemantic name string Human readable name of the identifier, e.g. "Manufacturer"
classifiers repeated SemanticClassifier List of semantic identifiers
SemanticClassifier type string The type of the semantic identifier
value string The value of the semantic identifier