Functions and Data Structures Provided by the FrontEnd Interfaces Library and Code Generators

The following table describes the functions and data structures that are provided by the FrontEnd Interfaces (FEI) library and code generators, which are useful when customizing FEI devices.

FEI Functions and Data Structures
Function/Data Structure Description
setNumChannels Used to size various FrontendTunerDevice class data structures.
frontend_tuner_status This is the FrontEnd tuner status property, which is a vector of structs. The indices match the tuner_id or index of the tuner used by the FrontEnd Tuner device. The developer is responsible for maintaining all fields with the sole exception of the allocation_id_csv, which is managed internally by the FrontendTunerDevice class.
getControlAllocationId Returns the control Allocation ID for the tuner specified, or an empty string if not allocated.
getTunerMapping Returns the tuner ID or tuner index of the tuner associated with the Allocation ID, or -1 if the Allocation ID is not associated with any tuner.
create Returns a StreamSRI object constructed using the frontend_tuner_status for a tuner, including the required Signal Related Information (SRI) keywords. Only required FrontEnd tuner status fields are used in constructing the StreamSRI, and any additional information that affects StreamSRI must be manually modified. In the case of Digital Down Converter (DDC) tuners, there is an optional parameter accepted by create for specifying the collector frequency since this information cannot be gathered from the frontend_tuner_status struct.
printSRI Used for debug purposes to print the values of a StreamSRI object to stdout.
addModifyKeyword Used to add a keyword to a StreamSRI object, or modify an existing keyword.
uuidGenerator Used to generate a new UUID string.
floatingPointCompare Used to handle potential errors introduced by floating-point math. Default precision is to the tenths place, and there is an optional parameter that can be used to specify a different precision.
matchAllocationIdToStreamId Only available when multi-out ports are specified. Multi-out capability of a Bulk Input/Output (BulkIO) port only pushes stream data with a particular Stream ID to connections that have a Connection ID that matches the Allocation ID. It is recommended that this function be called in deviceSetTuning.
validateRequest Used to verify that a value falls within the specified range. This function is overloaded to accept a range as well, to verify that it falls within a second range.
validateRequestVsSRI Used to check that the input data stream can support the allocation request. The output mode (True if complex output) is used when determining the necessary sample rate required to satisfy the request. The entire frequency band of the request must be available for True to be returned, not just the center frequency. True is returned upon success, otherwise FRONTEND::BadParameterException is thrown. If the CHAN_RF and FRONTEND::BANDWIDTH keywords are not found in the SRI, FRONTEND::BadParameterException is thrown.
validateRequestVsRFInfo Used to check that the analog capabilities can support the allocation request. The mode (True if complex) is used when determining the necessary sample rate required to satisfy the request. The entire frequency band of the request must be available for True to be returned, not just the center frequency. True is returned upon success, otherwise FRONTEND::BadParameterException is thrown.
validateRequestVsDevice Used to check that the input data stream and the device can support an allocation request. The mode (True if complex output) is used when determining the necessary sample rate required to satisfy the request. The entire frequency band of the request must be available for True to be returned, not just the center frequency. True is returned upon success, otherwise FRONTEND::BadParameterException is thrown. This function is overloaded to accept RFInfoPkt for an analog input data stream, and StreamSRI for a digital input data stream. For StreamSRI, if the CHAN_RF and FRONTEND::BANDWIDTH keywords are not found in the SRI, FRONTEND::BadParameterException is thrown.