|
uint32 | mxfA664VlCreate (HMXF_CHANNEL channel, MXF_A664_VL_PARAM *param, HMXF_VL *vl) |
|
uint32 | mxfA664VlRelease (HMXF_VL vl) |
|
uint32 | mxfA664VlGet (HMXF_CHANNEL phyChn, MXF_A664_VL_PARAM *param, HMXF_VL *vl) |
|
uint32 | mxfA664VlInfoGet (HMXF_VL vl, MXF_A664_VL_PARAM *param, HMXF_CHANNEL *phyChn) |
|
uint32 | mxfA664VlCountGet (HMXF_CHANNEL phyChn, uint64 direction, uint64 *count) |
|
uint32 | mxfA664VlAllGet (HMXF_CHANNEL phyChn, uint64 direction, uint64 maxVl, uint64 *count, HMXF_VL *vl) |
|
uint32 | mxfA664PortCreate (HMXF_VL vl, MXF_A664_PORT_PARAM *param, HMXF_PORT *port) |
|
uint32 | mxfA664PortRelease (HMXF_PORT port) |
|
uint32 | mxfA664PortGet (HMXF_VL vl, MXF_A664_PORT_PARAM *param, HMXF_PORT *port) |
|
uint32 | mxfA664PortInfoGet (HMXF_PORT port, MXF_A664_PORT_PARAM *param, HMXF_VL *vl) |
|
uint32 | mxfA664PortCountGet (HMXF_VL vl, uint64 *count) |
|
uint32 | mxfA664PortAllGet (HMXF_VL vl, uint64 maxPorts, uint64 *count, HMXF_PORT *port) |
|
uint32 | mxfA664TxAperiodicWrite (HMXF_HANDLE handle, uint64 options, uint64 startTime, uint64 count, MXF_A664_DATAREC *rec, uint64 *writtenCount) |
|
uint32 | mxfA664TxAperiodicBufferAlloc (HMXF_CHANNEL phyChannel, uint64 priority, uint64 bufferNum, uint64 size, HMXF_BUFFER *buffer, uint64 *allocated) |
|
uint32 | mxfA664TxAperiodicBufferStatusGet (HMXF_BUFFER buffer, uint64 *msgCount, uint64 *freeMsgs) |
|
uint32 | mxfA664TxPeriodicUpdateMsgWrite (HMXF_PORT port, uint64 count, MXF_A664_DATAREC *rec) |
|
uint32 | mxfA664RxAcqRead (HMXF_BUFFER buffer, uint64 maxRecCount, uint64 maxBytesCount, uint64 *status, uint64 *recCount, uint64 *bytesCount, MXF_A664_DATAREC *rec) |
|
uint32 | mxfA664RxSamplingRead (HMXF_BUFFER buffer, uint64 flags, uint64 maxRecCount, uint64 maxBytesCount, uint64 *recCount, uint64 *bytesCount, MXF_A664_SAMPREC *rec) |
|
uint32 | mxfA664NextDataRecordPtrGet (MXF_A664_DATAREC *currentRec, MXF_A664_DATAREC **nextRec) |
|
uint32 | mxfA664ErrorInjectionGet (HMXF_HANDLE handle, uint64 errorIdx, MXF_A664_ERROR_INJ *error) |
|
uint32 | mxfA664ErrorInjectionSet (HMXF_HANDLE handle, uint64 errorIdx, MXF_A664_ERROR_INJ *error) |
|
uint32 | mxfA664StatisticPortTxGet (HMXF_PORT port, MXF_A664_STAT_PORT_TX *stats) |
|
uint32 | mxfA664StatisticPortRxGet (HMXF_PORT port, MXF_A664_STAT_PORT_RX *stats) |
|
uint32 | mxfA664StatisticVlTxGet (HMXF_VL vl, MXF_A664_STAT_VL_TX *stats) |
|
uint32 | mxfA664StatisticVlRxGet (HMXF_VL vl, MXF_A664_STAT_VL_RX *stats) |
|
uint32 | mxfA664StatisticVlRxMacRedundancyGet (HMXF_VL vl, MXF_A664_STAT_VL_RX_MAC_REDUNDANCY *stats) |
|
uint32 | mxfA664StatisticVlRxEDERedundancyGet (HMXF_VL vl, MXF_A664_STAT_VL_RX_EDE_REDUNDANCY *stats) |
|
uint32 | mxfA664StatisticIPGet (HMXF_CHANNEL channel, MXF_A664_STAT_IP *stats) |
|
uint32 | mxfA664StatisticUDPGet (HMXF_CHANNEL channel, MXF_A664_STAT_UDP *stats) |
|
uint32 | mxfA664StatisticMacRxGet (HMXF_CHANNEL channel, MXF_A664_STAT_MAC_RX *stats) |
|
uint32 | mxfA664EdeEsConfigGet (HMXF_CHANNEL channel, MXF_A664_EDE_ES_CONFIG *config) |
|
uint32 | mxfA664EdeEsConfigSet (HMXF_CHANNEL channel, MXF_A664_EDE_ES_CONFIG *config) |
|
uint32 | mxfA664EdeCrcConfigGet (HMXF_MODULE module, MXF_A664_EDE_CRC_CONFIG *config) |
|
uint32 | mxfA664EdeCrcConfigSet (HMXF_MODULE module, MXF_A664_EDE_CRC_CONFIG *config) |
|
uint32 | mxfA664EdeTimerSet (HMXF_CHANNEL channel, uint64 timer) |
|
uint32 mxfA664TxAperiodicWrite |
( |
HMXF_HANDLE |
handle, |
|
|
uint64 |
options, |
|
|
uint64 |
startTime, |
|
|
uint64 |
count, |
|
|
MXF_A664_DATAREC * |
rec, |
|
|
uint64 * |
writtenCount |
|
) |
| |
- C#
- public static extern UInt32 mxfA664TxAperiodicWrite(UInt64 handle, UInt64 options, UInt64 startTime, UInt64 count, IntPtr rec, out UInt64 writtenCount);
Sends aperiodic data record for transmission. The data items to be transmitted are specified within the records, along with a time tag and a control word. The first data item is transmitted at the specified starting time. Timing options are only available when transmitting with raw port.
The records to transmit on time tag must be placed in chronological order in the array. The same time tag must not appear more than once in the array. When the start time is specified, the time tag of the first record or the start time should be at least 50 msec in advance to be relatively precise otherwise it will be sent as soon as possible. Also, the cumulative time of all record’s time tag and the start time must be smaller than 30 seconds.
- Note
- This function is the specific version for ARINC 664 of the multi-protocol mxfTxAperiodicWrite() function.
- Parameters
-
[in] | handle | COM/SAP queuing port handle or buffer handle in RAW mode. |
[in] | options | options for controlling the transmitter before for sending the data records. The details of the options are explained below.
Options | Mode |
MXF_TXAPERIODIC_FLAG_DEFAULT | Raw and VL. |
MXF_TXAPERIODIC_FLAG_USE_RECORD_ABSOLUTE_TIME | Raw only. |
MXF_TXAPERIODIC_FLAG_ABSOLUTE_START_TIME | Raw only. |
MXF_TXAPERIODIC_FLAG_USE_RECORD_RELATIVE_TIME | Raw only. |
|
[in] | startTime | start time based on the timebase. Can only be used in raw mode, set to 0 in VL mode. This is the time at which the data held in the first record is transmitted by the device. The time is either expressed accordingly to the process time base or relative to the current real-time clock value (i.e. offset in the future). If the bit MXF_TXAPERIODIC_FLAG_ABSOLUTE_START_TIME of the transmit flag is set, then the start time is specified in absolute time (rather than relative). MXF_TXAPERIODIC_FLAG_USE_RECORD_ABSOLUTE_TIME or MXF_TXAPERIODIC_FLAG_USE_RECORD_RELATIVE_TIME options cannot be used with a start time. |
[in] | count | number of records to write |
[in] | rec | pointer to a MXF_A664_DATAREC data structure containing the records to be written |
[out] | writtenCount | Number of records written. If writtenCount is different from count, MAXT_ERROR_BUFFER_OVERRUN will also be returned. |
The options parameter modifies the transmission scheme as described below;
- MXF_TXAPERIODIC_FLAG_DEFAULT
This is the default transmission flag, the scheduling priority defined when the buffer area was defined (see mxfTxAperiodicBufferAlloc()) is used to schedule the transmissions.
The time tag field is not used and must be set to 0. The records are transmitted with minimum delay between them.
- MXF_TXAPERIODIC_FLAG_USE_RECORD_ABSOLUTE_TIME
When set, the absolute transmit time of each data must be set in the record time tag. The time tag must be formatted according to the process time base. Only available when transmitting with raw port.
This flag cannot be used with MXF_TXAPERIODIC_FLAG_USE_RECORD_RELATIVE_TIME, MXF_TXAPERIODIC_FLAG_ABSOLUTE_START_TIME or a start time.
- MXF_TXAPERIODIC_FLAG_USE_RECORD_RELATIVE_TIME
When set, the relative transmit time of each data must be set in the record time tag. The process time base resolution is used, but the time base itself is ignored.
This option causes transmission of the first record at the specified offset and transmission of the remaining records after a delay that is computed by subtracting the record time tag from the time tag of preceding records (i.e. delta time). Only available when transmitting with raw port.
Let’s assume N data records to be transmitted with the MXF_TXAPERIODIC_FLAG_USE_RECORD_RELATIVE_TIME.
The actual record data transmit time will be computed as follows:
Time rec1 = Transmission offset (min 50 msec)
Time rec2 = Time rec1 + (rec2 time tag – rec1 time tag )
Time rec3 = Time rec2 + (rec3 time tag – rec2 time tag )
…
Time recN = Time recN-1 + (recN time tag - recN-1 time tag )
This flag cannot be used with MXF_TXAPERIODIC_FLAG_USE_RECORD_ABSOLUTE_TIME, MXF_TXAPERIODIC_FLAG_ABSOLUTE_START_TIME or a start time.
- MXF_TXAPERIODIC_FLAG_ABSOLUTE_START_TIME
When set, the startTime parameter must be formatted according to the process time base. Only available when transmitting with raw port.
If not set, the startTime parameter is expressed as a relative time from the current real time clock value. The process time base resolution is used, but the time base itself is ignored.
This flag cannot be used with the MXF_TXAPERIODIC_FLAG_USE_RECORD_ABSOLUTE_TIME or MXF_TXAPERIODIC_FLAG_USE_RECORD_RELATIVE_TIME options.
- Returns
MAXT_SUCCESS
Success is returned when all the records are transmitted.
MAXT_ERROR_OVERRUN
MAXT_ERROR_MESSAGE_SIZE
For all the above errors when a multi-records transmission is performed,
if one record cannot be transmitted for some reasons (exceed the buffer size
or cannot be fragmented for instance), the transmission is stopped and all the following
records are not transmitted. The return code describes the first error encountered.
Refer to mxf_error.h for a list of defined errors.
Call mxfSystemErrorStringGet() to transform the return code into a text string.
- Availability:
- Available in MX Foundation 4.2 and later.
- See also
- mxfSystemTimeBaseSet()
-
mxfA664NextDataRecordPtrGet()
- Examples:
- ar664_aperiodicSap.c, ar664_aperiodicSap.cs, ar664_com_queuing_basic.c, ar664_com_queuing_basic.cs, ar664_end_system.c, ar664_end_system.cs, ar664_error_injection_detection.c, ar664_error_injection_detection.cs, ar664_error_injection_detection_ede.c, ar664_error_injection_detection_ede.cs, ar664_playback.c, ar664_playback.cs, ar664_raw_rx.c, ar664_raw_rx.cs, ar664_recorder.c, and ar664_recorder.cs.
uint32 mxfA664RxSamplingRead |
( |
HMXF_BUFFER |
buffer, |
|
|
uint64 |
flags, |
|
|
uint64 |
maxRecCount, |
|
|
uint64 |
maxBytesCount, |
|
|
uint64 * |
recCount, |
|
|
uint64 * |
bytesCount, |
|
|
MXF_A664_SAMPREC * |
rec |
|
) |
| |
- C#
- public static extern UInt32 mxfA664RxSamplingRead(UInt64 buffer, UInt64 flags, UInt64 maxRecCount, UInt64 maxBytesCount, out UInt64 recCount, out UInt64 bytesCount, IntPtr rec);
Reads all sampling records from the sampling buffer to the application buffer. Available for A664 Rx sampling port only.
The sampling process maintains records for all of the received addresses. An address is considered received if corresponding data words were received within the kill-time period. A record refresh from the receive port resets the kill-time timer and an updated copy is made available to the application.
The sampling record contains information on the arrival rate and the number of errors, as well as the latest data received for that address.
- Note
- This function is the specific version for ARINC 664 of the multi-protocol mxfRxSamplingRead() function.
- Parameters
-
[in] | buffer | sampling buffer handle. |
[in] | flags | option flag.
Flags | Description |
MXF_RXSAMPLING_FLAG_DEFAULT | The record is kept in the buffer and the same record can be read again by the current or another application. |
MXF_RXSAMPLING_FLAG_ERASE_WHEN_READ | After the sampling record is returned, it is removed from the buffer. |
|
[in] | maxRecCount | maximum number of messages to read (0 means all messages). |
[in] | maxBytesCount | maximum number of bytes to read. |
[out] | recCount | number of messages returned. |
[out] | bytesCount | number of bytes returned. |
[out] | rec | pointer to MXF_A664_SAMPREC message record structure. |
- Returns
- MAXT_SUCCESS is returned when the function has succeeded.
Refer to mxf_error.h for a list of defined errors.
Call mxfSystemErrorStringGet() to transform the return code into a text string.
- Availability:
- Available in MX Foundation 4.2 and later.
- See also
- mxfA664RxAcqRead()
- Examples:
- ar664_sampling.c, and ar664_sampling.cs.
uint32 mxfA664ErrorInjectionSet |
( |
HMXF_HANDLE |
handle, |
|
|
uint64 |
errorIdx, |
|
|
MXF_A664_ERROR_INJ * |
error |
|
) |
| |
- C#
- public static extern UInt32 mxfA664ErrorInjectionSet(UInt64 handle, UInt64 errorIdx, ref MXF_A664_ERROR_INJ error);
This function call is used to define transmission error injection rule(s) to apply to a specific physical channel(s) (RAW) or VL/COM/SAP channel(s).
- Parameters
-
[in] | handle | Physical channel handle or COM/SAP port handle. |
[in] | errorIdx | Error index (0-99) for the rule. |
[in] | error | Pointer to a MXF_A664_ERROR_INJ structure. |
This MXF_A664_ERROR_INJ structure define the error injection rules to trigger in transmission.
The errorIdx define one specific rule.
For injecting an error in transmission the MXF_A664_TX_REC_CTRL_ERROR_INJ option must be specified in the control fields of the MXF_A664_DATAREC. The errorIdx field of the structure (in service::txAperiodic::errorIndex) must match the errorIdx defined for the rule in MXF_A664_ERROR_INJ in order to inject an error.
A maximum of 100 errors can be defined for the module.
An error defined on a COM port can be shared with another COM port by selecting the same error index.
- Returns
- MAXT_SUCCESS is returned when the function has succeeded.
Refer to mxf_error.h for a list of defined errors.
Call mxfSystemErrorStringGet() to transform the return code into a text string.
- Availability:
- Available in MX Foundation 4.2.4 and later.
- See also
- mxfA664ErrorInjectionGet()
- Examples:
- ar664_error_injection_detection.c, ar664_error_injection_detection.cs, ar664_error_injection_detection_ede.c, and ar664_error_injection_detection_ede.cs.