Introduction
Reference Documents
- [RD1]
- Central Control System Development Standards;
Introspection Interface
Introspection interface instrospectionif is the interface that provides
information on the running application and its offered commands, topics and
its OLDB path. Its purpose is to facilitate clients to get information
in a formal/authorative manner, since the application is the one that
serves commands and publishes data.
This documentation provides an overview of the interface. When complex structures are to be transmitted, the selected method is to use JSON and a schema will be provided.
Interfaces
- class introspectionif.Introspection
Introspection interface.
- GetInterfaces(service) String
Requests the application to return the interface declaration for the service in particular.
- Parameters:
service (String) – service name of interest. If empty, the method returns every available service in the application server instance.
- Returns:
A JSON formatted string that carries pairs of service and its respective MAL ICD XML.
- Return type:
String
- Raises:
stdif::ExceptionErr – On error.
- GetTopics(topic) String
Requests the application to return the topic (structure) declaration for the topic in particular.
- Parameters:
topic (String) – topic name of interest. If empty, the method returns every available topic in the application server instance.
- Returns:
A JSON formatted string that carries a dictionary of topic URIs and their respective MAL ICD XMLs.
- Return type:
String
- Raises:
stdif::ExceptionErr – On error.
- GetOldbPrefix() String
Requests the application to return the common prefix to all its OLDB datapoints.
- Returns:
A URI that is the prefix to all application OLDB datapoints.
- Return type:
String
- Raises:
stdif::ExceptionErr – On error.
JSON Schemas
GetInterfaces
The GetInterfaces() method returns a JSON formatted string. This
JSON string follows the schema expressed here:
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://www.eso.org/~eltmgr/elt/stdif/getinterfaces.schema.json",
"title": "GetInterfaces Reply",
"description": "ELT Server App Request Reply to GetInterfaces containing requested services",
"type" : "object",
"additionalProperties": { "type": "string" }
}
An example of such response is given below:
{
"zpb.rr://127.0.0.1:8501/StdCmds": "<?xml version=\"1.0\" ... </types>",
"zpb.rr://127.0.0.1:8501/Introspection": "<?xml version=\"1.0\" ... </types>"
}