MX Foundation 4

Functions

uint32 mxfSystemInitAttributeUint64CallbackHandler (HMXF_SERVER server, MXF_SYSTEM_INIT_ATTRIBUTE_UINT64_HANDLER handler)
 
uint32 mxfSystemInitAttributeUint64CallbackHandlerWithContext (void *context, HMXF_SERVER server, MXF_SYSTEM_INIT_ATTRIBUTE_UINT64_HANDLER_WITH_CONTEXT handler)
 
uint32 mxfSystemInit (HMXF_SERVER server)
 
uint32 mxfSystemsInit (uint64 count, HMXF_SERVER servers[])
 
uint32 mxfSystemTerminate (HMXF_SERVER server)
 
uint32 mxfSystemsTerminate (uint64 count, HMXF_SERVER servers[])
 

Detailed Description

Function Documentation

uint32 mxfSystemInitAttributeUint64CallbackHandler ( HMXF_SERVER  server,
MXF_SYSTEM_INIT_ATTRIBUTE_UINT64_HANDLER  handler 
)
C#
public static extern UInt32 mxfSystemInitAttributeUint64CallbackHandler(UInt64 server, MXF_SYSTEM_INIT_ATTRIBUTE_UINT64_HANDLER handler);

Allows the changing of some device initialization attribute values before MXF library initialization. This function must be called before MX-Foundation's library initialization (before the mxfSystemInit() or mxfSystemResourcesInit() function).

This handler is mandatory to change the value of the attributes below. The other attributes value must be changed after MX-Foundation library initialization using the mxfAttributeUint64Set() or mxfAttributeDoubleSet() functions.

The callback is called multiple times, once for each attribute that can be changed at initialization time for each channel/module/device combination.

Parameters
[in]serverserver handle
[in]handlerattribute callback handler function to update the attribute value

The callback handler function is defined as follow:

1 typedef uint32 (*PMXF_SYSTEM_INIT_ATTRIBUTE_UINT64_HANDLER)(HMXF_SERVER server, uint64 deviceIndex, uint64 moduleIndex, uint64 channelIndex, uint64 attrib, uint64* value);

[in] server: server handle

[in] deviceIndex: index of device on the server

[in] moduleIndex: index of module on the device

[in] channelIndex: index of channel on the module

[in] attrib: attribute to be changed.

The attributes that can be modified are listed here.

[in/out] value: Gives the current value. Can be overridden with the new value that must be set. If a new value needs to be set, the handler must return TRUE, otherwise the new value will be ignored and the attribute will keep the current value.

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.

The callback must return TRUE if a value has been changed or FALSE if no change.


Attributes



KMXF_DEVICE_EMBEDDED_CODEANDDATA_SIZE

This attribute reserves a memory area for an embedded application code and data that will be loaded dynamically by the client application on the device using the mxfEmbeddedCodeDownload() and mxfEmbeddedDataDownload() functions. In the handler, the attrib parameter to be changed is KMXF_DEVICE_EMBEDDED_CODEANDDATA_SIZE. The parameters server and deviceIndex can be used to identify the device. The parameters moduleIndex and channelIndex are not used.

The supported range is:

Range Value
(bytes)
Minimum 0 (default)
Maximum 524288


KMXF_DEVICE_EMBEDDED_SHARED_SIZE

This attribute reserves a shared memory area for an embedded application. In the handler, the attrib parameter to be changed is KMXF_DEVICE_EMBEDDED_SHARED_SIZE. The parameters server and deviceIndex can be used to identify the device. The parameters moduleIndex and channelIndex are not used.

The supported range is:

Range Value
(bytes)
Minimum 0 (default)
Maximum 524288


KMXF_DEVICE_EMBEDDED_TX_QUEUE_NUM

This attribute defines the number of TX embedded queues allocated at initialization. In the handler, the attrib parameter to be changed is KMXF_DEVICE_EMBEDDED_TX_QUEUE_NUM. The parameters server and deviceIndex can be used to identify the device. The parameters moduleIndex and channelIndex are not used.

The supported range is:

Range Value
Minimum 0 (default)
Maximum 64


KMXF_DEVICE_EMBEDDED_RX_QUEUE_NUM

This attribute defines the number of RX embedded queues allocated at initialization. In the handler, the attrib parameter to be changed is KMXF_DEVICE_EMBEDDED_RX_QUEUE_NUM. The parameters server and deviceIndex can be used to identify the device. The parameters moduleIndex and channelIndex are not used.

The supported range is:

Range Value
Minimum 0 (default)
Maximum 64


KMXF_DEVICE_COMM_QUEUE_NUM

This attribute defines the number of communication queues allocated at initialization. These queues are used for exchanging between a client application and an embedded application. In the handler, the attrib parameter to be changed is KMXF_DEVICE_EMBEDDED_COMM_QUEUE_NUM. The size of the queues are defined after the application is started with the mxfDeviceCommBufferAlloc() function. The parameters server and deviceIndex can be used to identify the device. The parameters moduleIndex and channelIndex are not used.

The supported range is:

Range Value
Minimum 0 (default)
Maximum 8


KMXF_CHANNEL_CLASS

This attribute is used to change the default channel class when a device is reset. For instance, a device supporting the ASYNC channel class can select between ASYNC and CSDB. Set value to the desired channel class. server, deviceIndex, moduleIndex and channelIndex can be used to identify the channel.

Note
Since MXF 4.5.2, it is now possible to change the channel class by using mxfAttributeUint64Set() instead of using the initialization callback.


KMXF_TX_PORT_ENABLE

This attribute is used to enable/disable the physical port of an ASYNC ENHANCED transmit channel. Set value to FALSE to disable the transmitter and to TRUE to enable it. When the transmitter is disabled, everything will work exactly the same as if it's enabled, but the data will not be sent. This attribute as no effect when internal loopback is enabled. server, deviceIndex, moduleIndex and channelIndex can be used to identify the channel.

Note
Use the mxfChannelTxPortEnableSet() function to enable/disable the transmitter when MXF library is loaded.


Example

The example below illustrates the handler basic structure:

1 uint32 AttribDefaultInitHandler(HMXF_SERVER server, uint64 deviceIndex, uint64 moduleIndex, uint64 channelIndex, uint64 attrib, uint64* value)
2 {
3 
4  switch(attrib)
5  {
6  case KMXF_DEVICE_EMBEDDED_SHARED_SIZE:
7  *value = sharedSize;
8  return TRUE;
9 
10  case KMXF_DEVICE_EMBEDDED_CODEANDDATA_SIZE:
11  *value = codeAndDataSize;
12  return TRUE;
13 
14  case KMXF_DEVICE_EMBEDDED_RX_QUEUE_NUM:
15  *value = embeddedRxQueueNum;
16  return TRUE;
17 
18  case KMXF_DEVICE_EMBEDDED_TX_QUEUE_NUM:
19  *value = embeddedTxQueueNum;
20  return TRUE;
21 
22  case KMXF_CHANNEL_CLASS:
23  *value = MXF_CLASS_CSDB;
24  return TRUE;
25  }
26 
27  return FALSE;
28 }
Availability:
Available in MX Foundation 4.0 and later.
See also
mxfSystemInit()
mxfSystemResourcesInit()
mxfAttributeUint64Set()
mxfAttributeDoubleSet()
mxfEmbeddedCodeDownload()
mxfEmbeddedDataDownload()
mxfChannelTxPortEnableSet()
mxfSystemInitAttributeUint64CallbackHandlerWithContext()
Examples:
ar429_comm_queues.c, ar429_comm_queues.cs, ar429_embedded_discrete.c, ar429_embedded_discrete.cs, ar429_embedded_timer.c, ar429_embedded_timer.cs, ar717.c, ar717.cs, ar717_advance.c, ar717_advance.cs, ar717_bridge_from_ar429.c, ar717_bridge_from_ar429.cs, ar717_buffer_threshold.c, ar717_buffer_threshold.cs, ar717_embedded_recorder.c, ar717_embedded_recorder.cs, ar717_rx_acquisition_trigger.c, ar717_rx_acquisition_trigger.cs, async.c, async.cs, async_flow_control_hw.c, async_flow_control_hw.cs, async_flow_control_sw.c, async_flow_control_sw.cs, csdb_aperiodic.c, csdb_aperiodic.cs, csdb_buffer_threshold.c, csdb_buffer_threshold.cs, csdb_periodic.c, csdb_periodic.cs, csdb_rx_acquisition_trigger.c, csdb_rx_acquisition_trigger.cs, csdb_rx_event_handler.c, csdb_rx_event_handler.cs, csdb_rx_sampling.c, csdb_rx_sampling.cs, discrete_Multi.c, discrete_Multi.cs, hdlc.c, hdlc.cs, hdlc_aperiodic.c, hdlc_aperiodic.cs, hdlc_buffer_threshold.c, hdlc_buffer_threshold.cs, hdlc_trigger.c, hdlc_trigger.cs, hdlc_tx_error_injection.c, hdlc_tx_error_injection.cs, mil1553_embedded_async_to_1553.c, mil1553_embedded_async_to_1553.cs, mil1553_embedded_update_embedded.c, mil1553_embedded_update_host.c, mil1553_embedded_update_host.cs, multi.c, multi.cs, pulse.c, write_read_async.c, and write_read_async.cs.
uint32 mxfSystemInitAttributeUint64CallbackHandlerWithContext ( void *  context,
HMXF_SERVER  server,
MXF_SYSTEM_INIT_ATTRIBUTE_UINT64_HANDLER_WITH_CONTEXT  handler 
)
C#
public static extern UInt32 mxfSystemInitAttributeUint64CallbackHandlerWithContext(IntPtr context, UInt64 server, MXF_SYSTEM_INIT_ATTRIBUTE_UINT64_HANDLER_WITH_CONTEXT handler);

Same as mxfSystemInitAttributeUint64CallbackHandler() but with an extra context parameter.

Allows the changing of some device initialization attribute values before MXF library initialization. This function must be called before MX-Foundation's library initialization (before the mxfSystemInit() or mxfSystemResourcesInit() function).

This handler is mandatory to change the value of the attributes below. The other attributes value must be changed after MX-Foundation library initialization using the mxfAttributeUint64Set() or mxfAttributeDoubleSet() functions.

The callback is called multiple times, once for each attribute that can be changed at initialization time for each channel/module/device combination.

Parameters
[in]contextpointer to context that will be passed in the callback
[in]serverserver handle
[in]handlerattribute callback handler function to update the attribute value

The callback handler function is defined as follow:

1 typedef uint32 (*MXF_SYSTEM_INIT_ATTRIBUTE_UINT64_HANDLER_WITH_CONTEXT)(void *context, HMXF_SERVER server, uint64 deviceIndex, uint64 moduleIndex, uint64 channelIndex, uint64 attrib, uint64* value);

[in] context: pointer to context

[in] server: server handle

[in] deviceIndex: index of device on the server

[in] moduleIndex: index of module on the device

[in] channelIndex: index of channel on the module

[in] attrib: attribute to be changed.

The attributes that can be modified are listed here.

[in/out] value: Gives the current value. Can be overridden with the new value that must be set. If a new value needs to be set, the handler must return TRUE, otherwise the new value will be ignored and the attribute will keep the current value.

Availability:
Available in MX Foundation 4.2.4 and later.
See also
mxfSystemInit()
mxfSystemResourcesInit()
mxfAttributeUint64Set()
mxfAttributeDoubleSet()
mxfEmbeddedCodeDownload()
mxfEmbeddedDataDownload()
mxfChannelTxPortEnableSet()
mxfSystemInitAttributeUint64CallbackHandler()
uint32 mxfSystemInit ( HMXF_SERVER  server)
C#
public static extern UInt32 mxfSystemInit(UInt64 server);

Resets the hardware device, initializes the library and allocates the base system resources. During the initialization, after the devices are detected, the firmware file is automatically loaded. When a device is configured to run in Ethernet mode, the firmware, library, server and configuration files are automatically loaded from the on-board flash, otherwise only the firmware is uploaded from the client system.

If another application needs to use the MXF library after a first application is running, it must call mxfSystemResourcesInit() instead of mxfSystemInit() in order to avoid resetting the first application.

Note
If the function is performed by an embedded application, the reset does not completely reset the device as this would cause it to terminate the embedded application.

Timebase is set to MXF_TIMEBASE_DEVICE_NSEC by this function.

If the function returns MAXT_ERROR_MANY_MASTER, the application can continue its execution, this error is a non-fatal error.

Parameters
[in]serverserver handle
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.0 and later.
See also
mxfServerConnect()
mxfSystemResourcesInit()
mxfSystemTerminate()
mxfSystemApplicationCountGet()
Examples:
adc.c, adc_buffer_threshold.c, adc_internal_calib.c, adc_sampling.c, ar429_aperiodic.c, ar429_aperiodic.cs, ar429_buffer_threshold.c, ar429_buffer_threshold.cs, ar429_comm_queues.c, ar429_comm_queues.cs, ar429_embedded_bridge.c, ar429_embedded_bridge.cs, ar429_embedded_discrete.c, ar429_embedded_discrete.cs, ar429_embedded_recorder.c, ar429_embedded_recorder.cs, ar429_embedded_timer.c, ar429_embedded_timer.cs, ar429_periodic.c, ar429_periodic.cs, ar429_rx_acquisition_trigger.c, ar429_rx_acquisition_trigger.cs, ar429_rx_event_handler.c, ar429_rx_event_handler.cs, ar429_rx_sampling.c, ar429_rx_sampling.cs, ar429_UDPCommRxEmbedded.c, ar629_alternate.c, ar629_alternate.cs, ar629_aperiodic_frame.c, ar629_aperiodic_frame.cs, ar629_aperiodic_mode.c, ar629_aperiodic_mode.cs, ar629_block_mode.c, ar629_block_mode.cs, ar629_dual_xpp.c, ar629_dual_xpp.cs, ar629_error_injection_detection.c, ar629_error_injection_detection.cs, ar629_freshnessCounter_manyCID.c, ar629_freshnessCounter_manyCID.cs, ar629_independent_mode.c, ar629_independent_mode.cs, ar629_updating_data_sampling.c, ar629_updating_data_sampling.cs, 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, ar664_recorder.cs, ar664_sampling.c, ar664_sampling.cs, ar708.c, ar708.cs, ar708_aperiodic.c, ar708_aperiodic.cs, ar708_buffer_threshold.c, ar708_buffer_threshold.cs, ar708_event_handler.c, ar708_event_handler.cs, ar708_periodic.c, ar708_periodic.cs, ar708_sampling.c, ar708_sampling.cs, ar708_trigger.c, ar708_trigger.cs, ar708_tx_error_injection.c, ar708_tx_error_injection.cs, ar717.c, ar717.cs, ar717_advance.c, ar717_advance.cs, ar717_bridge_from_ar429.c, ar717_bridge_from_ar429.cs, ar717_buffer_threshold.c, ar717_buffer_threshold.cs, ar717_embedded_recorder.c, ar717_embedded_recorder.cs, ar717_rx_acquisition_trigger.c, ar717_rx_acquisition_trigger.cs, ascb_bc.c, ascb_bm.c, ascb_user.c, async.c, async.cs, async_flow_control_hw.c, async_flow_control_hw.cs, async_flow_control_sw.c, async_flow_control_sw.cs, async_rx_acquisition_trigger.c, async_rx_acquisition_trigger.cs, async_tx_error_injection.c, async_tx_error_injection.cs, can_fd.c, canbus.c, canbus.cs, canbus_periodic.c, canbus_sampling.c, csdb_aperiodic.c, csdb_aperiodic.cs, csdb_buffer_threshold.c, csdb_buffer_threshold.cs, csdb_periodic.c, csdb_periodic.cs, csdb_rx_acquisition_trigger.c, csdb_rx_acquisition_trigger.cs, csdb_rx_event_handler.c, csdb_rx_event_handler.cs, csdb_rx_sampling.c, csdb_rx_sampling.cs, dac.c, dac_buffer_threshold.c, dac_relative_timing.c, discrete.c, discrete.cs, discrete_event_handler.c, discrete_event_handler.cs, discrete_fifo.c, discrete_fifo.cs, discrete_Multi.c, discrete_Multi.cs, discrete_pulse_clock.c, discrete_pulse_clock.cs, discrete_rx_acquisition_trigger.c, discrete_rx_acquisition_trigger.cs, flexadc.c, flexadc_buffer_threshold.c, flexadc_sampling.c, flexdac.c, flexdac_buffer_threshold.c, flexdac_relative_timing.c, flexdio.c, flexdio_event_handler.c, flexdio_fifo.c, flexdio_fifo_sampling.c, flexdio_sampling_acq.c, flexdio_sync.c, hdlc.c, hdlc.cs, hdlc_aperiodic.c, hdlc_aperiodic.cs, hdlc_buffer_threshold.c, hdlc_buffer_threshold.cs, hdlc_trigger.c, hdlc_trigger.cs, hdlc_tx_error_injection.c, hdlc_tx_error_injection.cs, hfce.c, hfce_aperiodic.c, hfce_buffer_threshold.c, hfce_trigger.c, hfce_tx_error_injection.c, irigb_1pps.c, irigb_1pps.cs, mil1553_aperiodic.c, mil1553_aperiodic.cs, mil1553_aperiodic_event.c, mil1553_aperiodic_event.cs, mil1553_aperiodic_frame.c, mil1553_aperiodic_frame.cs, mil1553_bc.c, mil1553_bc.cs, mil1553_bc_buserror_trigger.c, mil1553_bc_buserror_trigger.cs, mil1553_bc_dual_major_frame.c, mil1553_bc_dual_major_frame.cs, mil1553_bc_extclock.c, mil1553_bc_extclock.cs, mil1553_bc_rt_data_assignment.c, mil1553_bc_rt_data_assignment.cs, mil1553_bm.c, mil1553_bm.cs, mil1553_bm_acquisition_trigger.c, mil1553_bm_acquisition_trigger.cs, mil1553_cond_branch_1.c, mil1553_cond_branch_1.cs, mil1553_cond_branch_2.c, mil1553_cond_branch_2.cs, mil1553_ebr.c, mil1553_ebr.cs, mil1553_embedded_async_to_1553.c, mil1553_embedded_async_to_1553.cs, mil1553_embedded_update_embedded.c, mil1553_embedded_update_host.c, mil1553_embedded_update_host.cs, mil1553_errors.c, mil1553_errors.cs, mil1553_manyErrorInjections.c, mil1553_manyErrorInjections.cs, mil1553_rt.c, mil1553_rt.cs, mil1553_rt_rt.c, mil1553_rt_rt.cs, mil1553_rtErrorInjections.c, mil1553_rtErrorInjections.cs, multi.c, multi.cs, pulse.c, usb.c, usb.cs, write_read_async.c, and write_read_async.cs.
uint32 mxfSystemsInit ( uint64  count,
HMXF_SERVER  servers[] 
)
C#
public static extern UInt32 mxfSystemsInit(UInt64 count, UInt64[] servers);

Resets the hardware devices, initializes the library, allocates the base system resources and synchronizes the devices. During the initialization, after the devices are detected, the firmware file is automatically loaded. When a device is configured to run in Ethernet mode, the firmware, library, server and configuration files are automatically loaded from the on-board flash, otherwise only the firmware is uploaded from the client system.

Note
If the function is performed by an embedded application, the reset does not completely reset the device as this would cause it to terminate the embedded application.

Timebase is set to MXF_TIMEBASE_DEVICE_NSEC by this function.

This function can't be called with user privileges.

Parameters
[in]countnumber of server handle servers
[in]serversarray of server handle
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.4.2 and later.
See also
mxfSystemInit()
mxfSystemsTerminate()
uint32 mxfSystemTerminate ( HMXF_SERVER  server)
C#
public static extern UInt32 mxfSystemTerminate(UInt64 server);

Resets the device and releases the system resources allocated by the library.

If you want to terminate the library without resetting the device (because some other applications are running) the mxfSystemResourcesRelease() function should be used instead.

Note
If the function is performed by an embedded application, the reset does not completely reset the device as this would cause it to terminate the embedded application.
It is important to disable all asynchronous event conditions and that the asynchronous event handler has finished and is terminated with mxfAsyncEventHandlerTerminate() before calling this function.
Parameters
[in]serverserver handle
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.0 and later.
See also
mxfSystemInit()
mxfSystemResourcesRelease()
mxfAsyncEventHandlerTerminate()
Examples:
adc.c, adc_buffer_threshold.c, adc_internal_calib.c, adc_sampling.c, ar429_aperiodic.c, ar429_aperiodic.cs, ar429_buffer_threshold.c, ar429_buffer_threshold.cs, ar429_comm_queues.c, ar429_comm_queues.cs, ar429_embedded_bridge.c, ar429_embedded_bridge.cs, ar429_embedded_comm_queues.c, ar429_embedded_discrete.c, ar429_embedded_discrete.cs, ar429_embedded_recorder.c, ar429_embedded_recorder.cs, ar429_embedded_timer.c, ar429_embedded_timer.cs, ar429_periodic.c, ar429_periodic.cs, ar429_rx_acquisition_trigger.c, ar429_rx_acquisition_trigger.cs, ar429_rx_event_handler.c, ar429_rx_event_handler.cs, ar429_rx_sampling.c, ar429_rx_sampling.cs, ar429_UDPCommRxEmbedded.c, ar629_alternate.c, ar629_alternate.cs, ar629_aperiodic_frame.c, ar629_aperiodic_frame.cs, ar629_aperiodic_mode.c, ar629_aperiodic_mode.cs, ar629_block_mode.c, ar629_block_mode.cs, ar629_dual_xpp.c, ar629_dual_xpp.cs, ar629_error_injection_detection.c, ar629_error_injection_detection.cs, ar629_freshnessCounter_manyCID.c, ar629_freshnessCounter_manyCID.cs, ar629_independent_mode.c, ar629_independent_mode.cs, ar629_updating_data_sampling.c, ar629_updating_data_sampling.cs, 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, ar664_recorder.cs, ar664_sampling.c, ar664_sampling.cs, ar708.c, ar708.cs, ar708_aperiodic.c, ar708_aperiodic.cs, ar708_buffer_threshold.c, ar708_buffer_threshold.cs, ar708_event_handler.c, ar708_event_handler.cs, ar708_periodic.c, ar708_periodic.cs, ar708_sampling.c, ar708_sampling.cs, ar708_trigger.c, ar708_trigger.cs, ar708_tx_error_injection.c, ar708_tx_error_injection.cs, ar717.c, ar717.cs, ar717_advance.c, ar717_advance.cs, ar717_bridge_from_ar429.c, ar717_bridge_from_ar429.cs, ar717_buffer_threshold.c, ar717_buffer_threshold.cs, ar717_embedded_recorder.c, ar717_embedded_recorder.cs, ar717_rx_acquisition_trigger.c, ar717_rx_acquisition_trigger.cs, ascb_bc.c, ascb_bm.c, ascb_user.c, async.c, async.cs, async_flow_control_hw.c, async_flow_control_hw.cs, async_flow_control_sw.c, async_flow_control_sw.cs, async_rx_acquisition_trigger.c, async_rx_acquisition_trigger.cs, async_tx_error_injection.c, async_tx_error_injection.cs, can_fd.c, canbus.c, canbus.cs, canbus_periodic.c, canbus_sampling.c, csdb_aperiodic.c, csdb_aperiodic.cs, csdb_buffer_threshold.c, csdb_buffer_threshold.cs, csdb_periodic.c, csdb_periodic.cs, csdb_rx_acquisition_trigger.c, csdb_rx_acquisition_trigger.cs, csdb_rx_event_handler.c, csdb_rx_event_handler.cs, csdb_rx_sampling.c, csdb_rx_sampling.cs, dac.c, dac_buffer_threshold.c, dac_relative_timing.c, discrete.c, discrete.cs, discrete_event_handler.c, discrete_event_handler.cs, discrete_fifo.c, discrete_fifo.cs, discrete_Multi.c, discrete_Multi.cs, discrete_pulse_clock.c, discrete_pulse_clock.cs, discrete_rx_acquisition_trigger.c, discrete_rx_acquisition_trigger.cs, flexadc.c, flexadc_buffer_threshold.c, flexadc_sampling.c, flexdac.c, flexdac_buffer_threshold.c, flexdac_relative_timing.c, flexdio.c, flexdio_event_handler.c, flexdio_fifo.c, flexdio_fifo_sampling.c, flexdio_sampling_acq.c, flexdio_sync.c, hdlc.c, hdlc.cs, hdlc_aperiodic.c, hdlc_aperiodic.cs, hdlc_buffer_threshold.c, hdlc_buffer_threshold.cs, hdlc_trigger.c, hdlc_trigger.cs, hdlc_tx_error_injection.c, hdlc_tx_error_injection.cs, hfce.c, hfce_aperiodic.c, hfce_buffer_threshold.c, hfce_trigger.c, hfce_tx_error_injection.c, irigb_1pps.c, irigb_1pps.cs, mil1553_aperiodic.c, mil1553_aperiodic.cs, mil1553_aperiodic_event.c, mil1553_aperiodic_event.cs, mil1553_aperiodic_frame.c, mil1553_aperiodic_frame.cs, mil1553_bc.c, mil1553_bc.cs, mil1553_bc_buserror_trigger.c, mil1553_bc_buserror_trigger.cs, mil1553_bc_dual_major_frame.c, mil1553_bc_dual_major_frame.cs, mil1553_bc_extclock.c, mil1553_bc_extclock.cs, mil1553_bc_rt_data_assignment.c, mil1553_bc_rt_data_assignment.cs, mil1553_bm.c, mil1553_bm.cs, mil1553_bm_acquisition_trigger.c, mil1553_bm_acquisition_trigger.cs, mil1553_cond_branch_1.c, mil1553_cond_branch_1.cs, mil1553_cond_branch_2.c, mil1553_cond_branch_2.cs, mil1553_ebr.c, mil1553_ebr.cs, mil1553_embedded_async_to_1553.c, mil1553_embedded_async_to_1553.cs, mil1553_embedded_update_embedded.c, mil1553_errors.c, mil1553_errors.cs, mil1553_manyErrorInjections.c, mil1553_manyErrorInjections.cs, mil1553_rt.c, mil1553_rt.cs, mil1553_rt_rt.c, mil1553_rt_rt.cs, mil1553_rtErrorInjections.c, mil1553_rtErrorInjections.cs, multi.c, multi.cs, pulse.c, usb.c, usb.cs, write_read_async.c, and write_read_async.cs.
uint32 mxfSystemsTerminate ( uint64  count,
HMXF_SERVER  servers[] 
)
C#
public static extern UInt32 mxfSystemsTerminate(UInt64 count, UInt64[] servers);

Resets the devices and releases the system resources allocated by the library.

Note
If the function is performed by an embedded application, the reset does not completely reset the device as this would cause it to terminate the embedded application.
It is important to disable all asynchronous event conditions and that the asynchronous event handler has finished and is terminated with mxfAsyncEventHandlerTerminate() before calling this function.

This function can't be called with user privileges.

Parameters
[in]countnumber of server handle servers
[in]serversarray of server handle
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.4.2 and later.
See also
mxfSystemsInit()
mxfSystemTerminate()
Updated 03/30/2022