ar_enh_label_filter

short ar_enh_label_filter (short board, short channel, unsigned short label, unsigned short sdi, unsigned short essm, short action);

Purpose

This function supports the assignment of a single entry in the enhanced label filter table for the specified receive channel.  The CEI-x30 device enhanced label filtering feature supports the ability to filter ARINC 429 messages and generate a PCI interrupt based on the combined 8-bit label value, 2-bit SDI value, and 3-bit ESSM value.  Label filtering is disabled for all labels/sdi/essm combinations by default.  Label filtering changes are effective immediately on completion of this routine. 

Label Filtering

Once filtering has been enabled for a specified channel/label/sdi/essm combination, data received with matching bit field values would be discarded until label filtering for that specific message has been disabled.  

Interrupt Generation

Once interrupt generation filtering has been enabled for a specified channel/label/sdi/essm combination, messages received with matching bit field values will induce an entry in the CEI-x30 device interrupt queue.  If the device hardware interrupt feature has been enabled by invoking AR_SET_DEVICE_CONFIG with the option ARU_HW_INTERRUPT_ENABLE set to AR_ON, the device generates a PCI Interrupt to be serviced by the default interrupt service routine provided with the API or a custom ISR assigned by the host application.

Parameters

Input

Name

Type

Description

board

short

(input) Device Number of the board to reference, (valid range is 0-15).

channel

short

(input) ARINC 429 channel number (valid range is 0 to one less than the installed ARINC 429 receive channel count)

label

unsigned short

(input) Label of interest.  Valid range is 0-255.  Also valid is ARU_ALL_LABELS (511), for which the API applies the "action" parameter selection to all valid labels.

sdi

unsigned short

(input) SDI field of interest for the respective label parameter value.  Valid range is 0-3.  Also valid is ARU_ALL_SDI (4), for which the API applies the "action" parameter selection to all SDI field values of the respective label.

essm

unsigned short

(input) SDI field of interest for the respective label parameter value.  Valid range is 0-7.  Also valid is ARU_ALL_ESSM (8), for which the API applies the "action" parameter selection to all ESSM field values of the respective label.

action

unsigned short

(input) Enable or disable label filtering for the specified board/channel/label/SDI/ESSM combination.  Valid action parameter values are:
FILTER_SEQUENTIAL  0x10 (bit 4)  If CLEAR add label to sequential receive buffer; if SET filters message from the sequential receive buffer
FILTER_SNAPSHOT     0x20 (bit 5)  If CLEAR add label to snapshot receive buffer; if SET filters message from the snapshot receive buffer

FILTER_INTERRUP      0x40 (bit 6)  If CLEAR does nothing; if SET, receipt of the respective message creates a receive channel index entry in the device's interrupt queue and if enabled, generates a PCI interrupt.


Backward compatibility for the following basic label filtering options will result in an equivalent action for the buffer filtering options listed above:
ARU_FILTER_OFF (0)  disables label filtering (bits 4 and 5 CLEAR)
ARU_FILTER_ON  (1)  enables label filtering  (bits 4 and 5 SET)

Return Value

Name

Type

Description

status

short

status of the function call, with valid values of:
ARS_NORMAL             Success.
ARS_INVBOARD         The board parameter value was invalid.

ARS_BOARD_MUTEX   Access to the Board Lock timed-out/failed.
ARS_INVHARVAL        Invalid channel parameter value.

ARS_INVARG             Invalid label, SDI, ESSM or action parameter value.

References

Device Configuration Functions
Alphabetical Function Index
Hierarchical Function Index

CEI-x30 API Description