int ar_putfilter (unsigned int board, unsigned int channel, char * filterTable);
This function applies the supplied label filter table to the device for a specified channel. Each receive channel has a separate label filter table, which is used by the firmware to control storage of received labels and determine if reception of a particular label should generate an interrupt. Each element of the filter buffer consists of a bit field defined as follows:
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.
The filter buffer for a single channel is defined as follows:
filterTable[MAX_ESSM][MAX_SDI][MAX_LABEL]
and accessed as filterTable[eSSM][SDI][label], where the bits of the ARINC word are split up as follows:
eSSM SDI label
30 29
28 9 8 7 6 5 4 3 2 1 0
Input |
||
Name |
Type |
Description |
board |
unsigned int |
(input) Device Number of the board to reference, (valid range is 0-15). |
channel |
unsigned int |
(input) ARINC 429 channel number (valid range is 0 to one less than the installed ARINC 429 receive channel count). |
filterTable |
char (passed by reference) |
(output) 8Kbyte array supplying the contents to be written to the specified channel's label filter table. |
Name |
Type |
Description |
status |
int |
status of the function
call, with valid values of: ARS_BOARD_MUTEX Access to the Board Lock timed-out/failed. ARS_INVARG Invalid channel parameter value or NULL filterTable reference. |
Device
Configuration Functions
Alphabetical
Function Index
Hierarchical
Function Index