Ports
The handling of ports in rest-python takes on several forms depending on the IDL defining the port. Devices, Components, and Waveforms provide a ports
list. The URL to each of those entities should be substituted for the PARENT_PATH
listed in this document.
NOTE: Not all port types support providing extra information. The ones that do are detailed here.
/ PARENT_PATH / ports / PORT_NAME
Every port supports this interface, at a minimum. Many of these fields can be used by the client to determine what additional features are exposed.
/ PARENT_PATH / ports / PORT_NAME / bulkio
Required Properties:
idl.namespace == "BULKIO"
idl.type == any("dataFloat", "dataDouble", "dataOctet", "dataShort")
direction == "Uses"
This socket provides both JSON and binary data. The JSON data is a representation of the SRI:
The binary data is a vector of the appropriate type of information.
NOTE: Those familiar with REDHAWK can see there is no stream ID to marry the SRI with the binary stream. At this time multiple streams on a socket will be interleaved in such a way that re-joining the SRI with the data may be impossible. This will be resolved in a future release when this interface transmits only binary as a Google Protobuf structure.
/ PARENT_PATH / ports / ...Tuner...
Required Properties:
idl.namespace == "FRONTEND"
idl.type == any("DigitalTuner", "AnalogTuner")
direction == "Provides"
"Tuner" in name
The tuner statuses list is in essence the FRONTEND::tuner_status::*
property list, as defined by the IDL. It is not reproduced here.
/ PARENT_PATH / ports / ...Tuner... / ALLOCATION_ID
Required Properties:
idl.namespace == "FRONTEND"
idl.type == any("DigitalTuner", "AnalogTuner")
direction == "Provides"
"Tuner" in name
The tuner statuses list is in essence the FRONTEND::tuner_status::*
property list, as defined by the IDL. It is not reproduced here.
/ PARENT_PATH / ports / ...Tuner... / ALLOCATION_ID
Required Properties:
idl.namespace == "FRONTEND"
idl.type == any("DigitalTuner", "AnalogTuner")
direction == "Provides"
"Tuner" in name
By providing the allocation ID, one can PUT
tuner properties directly to the port to use the IDL-defined methods (similar to calling configure
, etc.). The structure of properties to use is as follows:
/ PARENT_PATH / ports / RFInfo...
Required Properties:
idl.namespace == "FRONTEND"
idl.type == "RFInfo"
direction == "Provides"
name begins "RFInfo"
/ PARENT_PATH / ports / RFSource...
Required Properties:
idl.namespace == "FRONTEND"
idl.type == "RFSource"
direction == "Provides"
name begins "RFSource"
The RFInfoPkt structure is as follows:
/ PARENT_PATH / ports / GPS...
Required Properties:
idl.namespace == "FRONTEND"
idl.type == "GPS"
direction == "Provides"
name begins "GPS"
/ PARENT_PATH / ports / NavData...
Required Properties:
idl.namespace == "FRONTEND"
idl.type == "NavData"
direction == "Provides"
name begins "NavData"