(
            self, chassis_devices_ports="", timeout=WAIT_INFINITELY)
return connections
Detects and configures cDAQ Sync connections between devices.
        Stop all NI-DAQmx tasks running on the devices prior to running
        this function because any running tasks cause auto-configuration
        to fail.

        Args:
            chassis_devices_ports (Optional[str]): Specifies the names of the
                CompactDAQ chassis, C Series modules, or cDAQ Sync ports in
                comma separated form to search. If no names are specified, all
                cDAQ Sync ports on connected, non-simulated devices are
                scanned.
            timeout (Optional[float]): Specifies the time in seconds to
                wait for the device to respond before timing out. If a
                timeout occurs, no configuration is changed.
        Returns:
            List[nidaqmx.types.CDAQSyncConnection]:

            Returns the configured port-to-port connections.
Detects and configures cDAQ Sync connections between devices.
        Stop all NI-DAQmx tasks running on the devices prior to running
        this function because any running tasks cause auto-configuration
        to fail.
Detects and configures cDAQ Sync connections between devices . Stop all NI - DAQmx tasks running on the devices prior to running this function because any running tasks cause auto - configuration to fail .
def auto_configure_cdaq_sync_connections(
            self, chassis_devices_ports="", timeout=WAIT_INFINITELY):
        """
        Detects and configures cDAQ Sync connections between devices.
        Stop all NI-DAQmx tasks running on the devices prior to running
        this function because any running tasks cause auto-configuration
        to fail.

        Args:
            chassis_devices_ports (Optional[str]): Specifies the names of the
                CompactDAQ chassis, C Series modules, or cDAQ Sync ports in
                comma separated form to search. If no names are specified, all
                cDAQ Sync ports on connected, non-simulated devices are
                scanned.
            timeout (Optional[float]): Specifies the time in seconds to
                wait for the device to respond before timing out. If a
                timeout occurs, no configuration is changed.
        Returns:
            List[nidaqmx.types.CDAQSyncConnection]:

            Returns the configured port-to-port connections.
        """
        cfunc = lib_importer.windll.DAQmxAutoConfigureCDAQSyncConnections
        if cfunc.argtypes is None:
            with cfunc.arglock:
                if cfunc.argtypes is None:
                    cfunc.argtypes = [
                        ctypes_byte_str, ctypes.c_double]

        error_code = cfunc(
            chassis_devices_ports, timeout)
        check_for_error(error_code)

        cfunc = lib_importer.windll.DAQmxGetAutoConfiguredCDAQSyncConnections
        if cfunc.argtypes is None:
            with cfunc.arglock:
                if cfunc.argtypes is None:
                    cfunc.argtypes = [
                        ctypes.c_char_p, ctypes.POINTER(ctypes.c_uint)]

        port_list_size = ctypes.c_uint()

        while True:
            size_or_code = cfunc(
                None, ctypes.byref(port_list_size))

            if size_or_code < 0:
                break

            port_list = ctypes.create_string_buffer(size_or_code)

            size_or_code = cfunc(
                port_list, ctypes.byref(port_list_size))

            if is_string_buffer_too_small(size_or_code):
                # Buffer size must have changed between calls; check again.
                continue
            else:
                break

        check_for_error(size_or_code)

        ports = unflatten_channel_string(port_list.value.decode('ascii'))
        output_ports = ports[::2]
        input_ports = ports[1::2]

        connections = []
        for output_port, input_port in zip(output_ports, input_ports):
            connections.append(
                CDAQSyncConnection(output_port=output_port,
                                   input_port=input_port))

        return connections
def auto_configure_cdaq_sync_connections ( self , chassis_devices_ports = "" , timeout = WAIT_INFINITELY ) : cfunc = lib_importer . windll . DAQmxAutoConfigureCDAQSyncConnections if cfunc . argtypes is None : with cfunc . arglock : if cfunc . argtypes is None : cfunc . argtypes = [ ctypes_byte_str , ctypes . c_double ] error_code = cfunc ( chassis_devices_ports , timeout ) check_for_error ( error_code ) cfunc = lib_importer . windll . DAQmxGetAutoConfiguredCDAQSyncConnections if cfunc . argtypes is None : with cfunc . arglock : if cfunc . argtypes is None : cfunc . argtypes = [ ctypes . c_char_p , ctypes . POINTER ( ctypes . c_uint ) ] port_list_size = ctypes . c_uint ( ) while True : size_or_code = cfunc ( None , ctypes . byref ( port_list_size ) ) if size_or_code < 0 : break port_list = ctypes . create_string_buffer ( size_or_code ) size_or_code = cfunc ( port_list , ctypes . byref ( port_list_size ) ) if is_string_buffer_too_small ( size_or_code ) : # Buffer size must have changed between calls; check again. continue else : break check_for_error ( size_or_code ) ports = unflatten_channel_string ( port_list . value . decode ( 'ascii' ) ) output_ports = ports [ : : 2 ] input_ports = ports [ 1 : : 2 ] connections = [ ] for output_port , input_port in zip ( output_ports , input_ports ) : connections . append ( CDAQSyncConnection ( output_port = output_port , input_port = input_port ) ) return connections