def ai_meas_types(self): """ List[:class:`nidaqmx.constants.UsageTypeAI`]: Indicates the measurement types supported by the channel. """ cfunc = lib_importer.windll.DAQmxGetPhysicalChanAISupportedMeasTypes cfunc.argtypes = [ ctypes_byte_str, wrapped_ndpointer(dtype=numpy.int32, flags=('C','W')), ctypes.c_uint] temp_size = 0 while True: val = numpy.zeros(temp_size, dtype=numpy.int32) size_or_code = cfunc( self._name, val, temp_size) if is_array_buffer_too_small(size_or_code): # Buffer size must have changed between calls; check again. temp_size = 0 elif size_or_code > 0 and temp_size == 0: # Buffer size obtained, use to retrieve data. temp_size = size_or_code else: break check_for_error(size_or_code) return [UsageTypeAI(e) for e in val]
def table_scaled_vals(self): """ List[float]: Specifies a list of scaled values. These values map directly to the values in **table_pre_scaled_vals**. """ cfunc = lib_importer.windll.DAQmxGetScaleTableScaledVals if cfunc.argtypes is None: with cfunc.arglock: if cfunc.argtypes is None: cfunc.argtypes = [ ctypes_byte_str, wrapped_ndpointer(dtype=numpy.float64, flags=('C', 'W')), ctypes.c_uint ] temp_size = 0 while True: val = numpy.zeros(temp_size, dtype=numpy.float64) size_or_code = cfunc(self._name, val, temp_size) if is_array_buffer_too_small(size_or_code): # Buffer size must have changed between calls; check again. temp_size = 0 elif size_or_code > 0 and temp_size == 0: # Buffer size obtained, use to retrieve data. temp_size = size_or_code else: break check_for_error(size_or_code) return val.tolist()
def do_samp_modes(self): """ List[:class:`nidaqmx.constants.AcquisitionType`]: Indicates the sample modes supported by devices that support sample clocked digital output. """ cfunc = lib_importer.windll.DAQmxGetPhysicalChanDOSampModes cfunc.argtypes = [ ctypes_byte_str, wrapped_ndpointer(dtype=numpy.int32, flags=('C','W')), ctypes.c_uint] temp_size = 0 while True: val = numpy.zeros(temp_size, dtype=numpy.int32) size_or_code = cfunc( self._name, val, temp_size) if is_array_buffer_too_small(size_or_code): # Buffer size must have changed between calls; check again. temp_size = 0 elif size_or_code > 0 and temp_size == 0: # Buffer size obtained, use to retrieve data. temp_size = size_or_code else: break check_for_error(size_or_code) return [AcquisitionType(e) for e in val]
def teds_template_ids(self): """ List[int]: Indicates the IDs of the templates in the bitstream in **teds_bit_stream**. """ cfunc = lib_importer.windll.DAQmxGetPhysicalChanTEDSTemplateIDs cfunc.argtypes = [ ctypes_byte_str, wrapped_ndpointer(dtype=numpy.uint32, flags=('C','W')), ctypes.c_uint] temp_size = 0 while True: val = numpy.zeros(temp_size, dtype=numpy.uint32) size_or_code = cfunc( self._name, val, temp_size) if is_array_buffer_too_small(size_or_code): # Buffer size must have changed between calls; check again. temp_size = 0 elif size_or_code > 0 and temp_size == 0: # Buffer size obtained, use to retrieve data. temp_size = size_or_code else: break check_for_error(size_or_code) return val.tolist()
def ao_power_amp_scaling_coeff(self): """ List[float]: Indicates the coefficients of a polynomial equation used to scale from pre-amplified values. """ cfunc = lib_importer.windll.DAQmxGetAOPowerAmpScalingCoeff cfunc.argtypes = [ ctypes_byte_str, wrapped_ndpointer(dtype=numpy.float64, flags=('C','W')), ctypes.c_uint] temp_size = 0 while True: val = numpy.zeros(temp_size, dtype=numpy.float64) size_or_code = cfunc( self._name, val, temp_size) if is_array_buffer_too_small(size_or_code): # Buffer size must have changed between calls; check again. temp_size = 0 elif size_or_code > 0 and temp_size == 0: # Buffer size obtained, use to retrieve data. temp_size = size_or_code else: break check_for_error(size_or_code) return val.tolist()
def teds_bit_stream(self): """ List[int]: Indicates the TEDS binary bitstream without checksums. """ cfunc = lib_importer.windll.DAQmxGetPhysicalChanTEDSBitStream if cfunc.argtypes is None: with cfunc.arglock: if cfunc.argtypes is None: cfunc.argtypes = [ ctypes_byte_str, wrapped_ndpointer(dtype=numpy.uint8, flags=('C','W')), ctypes.c_uint] temp_size = 0 while True: val = numpy.zeros(temp_size, dtype=numpy.uint8) size_or_code = cfunc( self._name, val, temp_size) if is_array_buffer_too_small(size_or_code): # Buffer size must have changed between calls; check again. temp_size = 0 elif size_or_code > 0 and temp_size == 0: # Buffer size obtained, use to retrieve data. temp_size = size_or_code else: break check_for_error(size_or_code) return val.tolist()
def ao_power_up_output_types(self): """ List[:class:`nidaqmx.constants.AOPowerUpOutputBehavior`]: Indicates the power up output types supported by the channel. """ cfunc = (lib_importer.windll. DAQmxGetPhysicalChanAOSupportedPowerUpOutputTypes) if cfunc.argtypes is None: with cfunc.arglock: if cfunc.argtypes is None: cfunc.argtypes = [ ctypes_byte_str, wrapped_ndpointer(dtype=numpy.int32, flags=('C','W')), ctypes.c_uint] temp_size = 0 while True: val = numpy.zeros(temp_size, dtype=numpy.int32) size_or_code = cfunc( self._name, val, temp_size) if is_array_buffer_too_small(size_or_code): # Buffer size must have changed between calls; check again. temp_size = 0 elif size_or_code > 0 and temp_size == 0: # Buffer size obtained, use to retrieve data. temp_size = size_or_code else: break check_for_error(size_or_code) return [AOPowerUpOutputBehavior(e) for e in val]
def poly_reverse_coeff(self): """ List[float]: Specifies a list of coefficients for the polynomial that converts scaled values to pre-scaled values. Each element of the list corresponds to a term of the equation. For example, if index three of the list is 9, the fourth term of the equation is 9y^3. """ cfunc = lib_importer.windll.DAQmxGetScalePolyReverseCoeff cfunc.argtypes = [ ctypes_byte_str, wrapped_ndpointer(dtype=numpy.float64, flags=('C', 'W')), ctypes.c_uint ] temp_size = 0 while True: val = numpy.zeros(temp_size, dtype=numpy.float64) size_or_code = cfunc(self._name, val, temp_size) if is_array_buffer_too_small(size_or_code): # Buffer size must have changed between calls; check again. temp_size = 0 elif size_or_code > 0 and temp_size == 0: # Buffer size obtained, use to retrieve data. temp_size = size_or_code else: break check_for_error(size_or_code) return val.tolist()
def ai_sensor_power_voltage_range_vals(self): """ List[float]: Indicates pairs of sensor power voltage ranges supported by this channel. Each pair consists of the low value followed by the high value. """ cfunc = (lib_importer.windll. DAQmxGetPhysicalChanAISensorPowerVoltageRangeVals) if cfunc.argtypes is None: with cfunc.arglock: if cfunc.argtypes is None: cfunc.argtypes = [ ctypes_byte_str, wrapped_ndpointer(dtype=numpy.float64, flags=('C', 'W')), ctypes.c_uint ] temp_size = 0 while True: val = numpy.zeros(temp_size, dtype=numpy.float64) size_or_code = cfunc(self._name, val, temp_size) if is_array_buffer_too_small(size_or_code): # Buffer size must have changed between calls; check again. temp_size = 0 elif size_or_code > 0 and temp_size == 0: # Buffer size obtained, use to retrieve data. temp_size = size_or_code else: break check_for_error(size_or_code) return val.tolist()