The QTPL argument datatype keywords are summarised in Table 1. For INPUT arguments some testing of the datatype will be performed against the types understood by QSAS as listed in table 1. For OUTPUT arguments the datatype information is used only for labelling the QPLUGUI slots, so incorrect OUTPUT datatypes may not be detected by the software but could confuse the user.
Output objects are placed automatically on the working list, with the exception of TIME_INTERVAL objects that are placed on the Time Interval List.
In all instances the input object available to the plug-in is of type QdObject and must be narrowed to the type expected. Because of the wide range of objects that may be narrowed to the requested data type, the plug-in code is responsible for performing the required narrow and test, and to ensure that xrefs such as FRAME or TIME_TAGS are present when required.
The datatypes ANY_DATA_OBJECT and ANY_TIME_SERIES are provided so that a single plug-in may operate analagously on a variety of types of data-object: e.g. a time-averaging plug-in might have an ANY_TIME_SERIES input and an ANY_DATA_OBJECT output argument, as well as other inputs to specify the details of the time-averaging, enabling it to time-average many different kinds of time-series and to return a new data-object of an appropriate kind to contain the result in each case.
Inputs requiring either a sequence of time tags, TIMETAGS or a time interval, TIME_INTERVAL, will accept any object with associated TIME_TAGS xref as well as time sequence or interval objects.
In addition, if an input is specified as ANY_DATA_OBJECT then the associated input slot will accept a numeric value typed into the input slot. This is converted into a FLOAT type data object before being passed to the plug-in.
Single numeric quantities FLOAT and INTEGER, and strings STRING accept both QSAS data objects of the appropriate type and values typed directly into the input slot. The interface between QSAS and the plug-in still uses a QSAS data-object of the appropriate type, but the Plug-in Window handles such quantities as text strings instead of requiring the user to first create a data-object. Thus the user can type a number directly into a FLOAT or INTEGER input slot, and text into a STRING input slot.
datatype in file.qtpl | QSAS data-object type | NOTES |
accepted in INPUT slot | ||
ANY_DATA_OBJECT | QdObject | All qdos objects inherit from QdObject |
float value | or float numeric value | |
ANY_TIME_SERIES | QdRScalarSeq | with TIME_TAGS Xref |
QdRMatrixSeq | ||
MATRIX_TIME_SERIES | QdRMatrixSeq | with TIME_TAGS Xref |
VECTOR_TIME_SERIES | QdRMatrixSeq | with TIME_TAGS & Frame Xrefs |
SCALAR_TIME_SERIES | QdRScalarSeq | with TIME_TAGS Xref |
MATRIX_SERIES | QdRMatrixSeq | |
VECTOR_SERIES | QdRMatrixSeq | with Frame Xref |
SCALAR_SERIES | QdRScalarSeq | |
TIMETAGS | QdTimeSeq | |
QdRMatrixSeq | uses TIME_TAGS Xref | |
QdRScalarSeq | uses TIME_TAGS Xref | |
TIME_INTERVAL | QdTimeInterval | |
QdTimeSeq | uses start/end times | |
QdRMatrixSeq | uses TIME_TAGS Xref | |
QdRScalarSeq | uses TIME_TAGS Xref | |
FLOAT | QdRScalar | |
float value | numeric value typed in INPUT | |
INTEGER | QdRScalar | |
float value | numeric value (cast to int) | |
MATRIX | QdRMatrix | |
STRING | QdString | |
string literal | string typed in INPUT |