MX Foundation 4
MXF_A664_DATAREC Struct Reference

ARINC 664 Transmit / Receive (Acquisition) Record. More...

#include <mxf_class_a664.h>

Data Structures

union  service
 
union  type
 Define the extra parameters required by port others than COM/SAP ports. More...
 

Data Fields

uint64 timeTag
 
uint32 control
 
uint32 dataSize
 
uint32 repeatCount
 
uint32 reserved
 
uint8 data [8192]
 

Detailed Description

Field Documentation

uint64 MXF_A664_DATAREC::timeTag

_Acquisition Mode_:

Specifies the time when the data record has been received by the device. It is an absolute time (μs or ns) based on the current time base defined for the device.

_Transmission Mode_:

For transmit operation, the timetag allows the application to specify the time when the data is to be transmitted.
Depending on the usage the time tag can be optional, in which case it must be set to 0. When the transmission is immediate the mxfA664TxAperiodicWrite() function specify a value 0 for the timetag. When the modes ABSOLUTE or RELATIVE are used a value must be specified for the transmit record.

Examples:
ar664_aperiodicSap.c, ar664_com_queuing_basic.c, ar664_end_system.c, ar664_end_system.cs, ar664_error_injection_detection.c, ar664_error_injection_detection_ede.c, ar664_playback.c, ar664_playback.cs, ar664_raw_rx.c, and ar664_recorder.c.
uint32 MXF_A664_DATAREC::control

_Acquisition mode_:

For receive operation, the control field report the state of the frame that was received on the physical port.
Even if an error was detected (like a CRC error) it is possible that the data of the frame be passed to the calling application if all other checking by the protocol stack succeeds.

The frame status control bits in reception are defined as follow;

Constant Description
MXF_A664_CTRL_RX_PORT_B The frame is coming from physical port B. If this bit is not set, the frame is coming from physical port A.
MXF_A664_CTRL_RX_MAC_SKEWMAX_EXCEEDED The frame has been received after MAC Skew Max elapsed
MXF_A664_CTRL_RX_EDE_SKEWMAX_EXCEEDED The frame has been received after EDE Skew Max elapsed



_Transmission Mode_:

In transmission the control field is used to control or override default settings.

Raw mode Control Bits:
By default on raw port, MAC CRC32, MAC NetID and IP checksum are automatically managed.
In redundant mode, by default, transmission will occur on both ports.
Error injection can be used to alter the transmission (see mxfA664ErrorInjectionSet()).

Constant Description
MXF_A664_CTRL_TX_RAW_PORT_A Transmit on port-A only (redundant mode)
MXF_A664_CTRL_TX_RAW_PORT_B Transmit on port-B only (redundant mode)
MXF_A664_CTRL_TX_RAW_INJECT_ERROR_ON_PORTA Inject error specified by errorIndex on port A
MXF_A664_CTRL_TX_RAW_INJECT_ERROR_ON_PORTB Inject error specified by errorIndex on port B
MXF_A664_CTRL_TX_RAW_MAC_NETID_INCLUDED Do not automatically set NetID
MXF_A664_CTRL_TX_RAW_MAC_CRC32_INCLUDED Do not automatically set MAC CRC32
MXF_A664_CTRL_TX_RAW_IP_CHECKSUM_INCLUDED Do not automatically set IP checksum

VL mode Control Bits:
By default on VL port, everything is transmitted according to VL/Port settings.
Error injection can be used to alter the transmission (see mxfA664ErrorInjectionSet()).

Constant Description
MXF_A664_TX_REC_CTRL_ERROR_INJ Inject error specified by errorIndex
MXF_A664_TX_REC_CTRL_EDE_HEADER_INCLUDED The datarec data array includes EDE header. This is useful with MXF_A664_ERRORID_VL_EDE_TIMESTAMP_OVERRIDE error injection. The datarec datasize must be 12 bytes more than payload to make room for the EDE Sequence Number (2 bytes), EDE Timestamp (6 bytes), EDE CRCX (2 bytes) and EDE CRCY (2 bytes). Payload must be set at offset 8 bytes (after EDE Timestamp). EDE trailer (EDE CRCX and CRCY) are located after the payload. EDE Sequence Number, CRCX and CRCY values are always overriden. EDE Timestamp is overriden if MXF_A664_ERRORID_VL_EDE_TIMESTAMP_OVERRIDE error injection is not used.
Examples:
ar664_aperiodicSap.c, ar664_com_queuing_basic.c, ar664_end_system.c, ar664_end_system.cs, ar664_error_injection_detection.c, ar664_error_injection_detection_ede.c, ar664_playback.c, ar664_playback.cs, ar664_raw_rx.c, and ar664_recorder.c.
uint32 MXF_A664_DATAREC::dataSize

Acquisition mode: Number of bytes received in data array;

Transmission Mode: Number of bytes to transmit from data array.

Examples:
ar664_aperiodicSap.c, ar664_com_queuing_basic.c, ar664_end_system.c, ar664_end_system.cs, ar664_error_injection_detection.c, ar664_error_injection_detection_ede.c, ar664_playback.c, ar664_raw_rx.c, ar664_recorder.c, and ar664_sampling.c.
uint32 MXF_A664_DATAREC::repeatCount
uint32 MXF_A664_DATAREC::reserved

Reserved for future use. Must be set to zero in transmission.

uint8 MXF_A664_DATAREC::data[8192]

ARINC 664 data array.

Acquisition mode: Data received. Depending on the type of port, the data can be the complete frame (raw port) or only udp payload.

Transmission Mode: Data to transmit. Depending on the type of port, the data must be the complete frame (raw port) or only udp payload.

Examples:
ar664_aperiodicSap.c, ar664_com_queuing_basic.c, ar664_end_system.c, ar664_end_system.cs, ar664_error_injection_detection.c, ar664_error_injection_detection_ede.c, ar664_playback.c, ar664_playback.cs, ar664_raw_rx.c, ar664_recorder.c, and ar664_sampling.c.
Updated 10/23/2023