def run_example(): # By default, the example detects and displays all available devices and # selects the first device listed. Use the dev_id_list variable to filter # detected devices by device ID (see UL documentation for device IDs). # If use_device_detection is set to False, the board_num variable needs to # match the desired board number configured with Instacal. use_device_detection = True dev_id_list = [] board_num = 0 try: if use_device_detection: config_first_detected_device(board_num, dev_id_list) daq_dev_info = DaqDeviceInfo(board_num) if not daq_dev_info.supports_digital_io: raise Exception('Error: The DAQ device does not support ' 'digital I/O') print('\nActive DAQ device: ', daq_dev_info.product_name, ' (', daq_dev_info.unique_id, ')\n', sep='') dio_info = daq_dev_info.get_dio_info() # Find the first port that supports input, defaulting to None # if one is not found. port = next( (port for port in dio_info.port_info if port.supports_input), None) if not port: raise Exception('Error: The DAQ device does not support ' 'digital input') # If the port is configurable, configure it for input. if port.is_port_configurable: ul.d_config_port(board_num, port.type, DigitalIODirection.IN) # Get a value from the digital port port_value = ul.d_in(board_num, port.type) # Get a value from the first digital bit bit_num = 0 bit_value = ul.d_bit_in(board_num, port.type, bit_num) # Display the port value print(port.type.name, 'Value:', port_value) # Display the bit value print('Bit', bit_num, 'Value:', bit_value) except Exception as e: print('\n', e) finally: if use_device_detection: ul.release_daq_device(board_num)
def update_value(self): try: # Get a value from the device value = ul.d_bit_in(self.board_num, self.port.type, self.port.first_bit) # Display the value self.value_label["text"] = str(value) # Call this method again until the stop button is pressed (or an # error occurs) if self.running: self.after(100, self.update_value) except ULError as e: self.stop() self.show_ul_error(e)
def update_value(self): try: # Display the bit values first_bit = self.port.first_bit for bit_num in range(first_bit, first_bit + min(self.port.num_bits, 8)): # Get a value from the device value = ul.d_bit_in(self.board_num, self.port.type, bit_num) # Display it self.bit_value_labels[bit_num]["text"] = str(value) # Call this method again until the stop button is pressed (or an # error occurs) if self.running: self.after(100, self.update_value) except ULError as e: self.stop() show_ul_error(e)
def run_example(): board_num = 0 if use_device_detection: ul.ignore_instacal() if not util.config_first_detected_device(board_num): print("Could not find device.") return digital_props = DigitalProps(board_num) # Find the first port that supports input, defaulting to None # if one is not found. port = next( (port for port in digital_props.port_info if port.supports_input), None) if port == None: util.print_unsupported_example(board_num) return try: # If the port is configurable, configure it for input. if port.is_port_configurable: ul.d_config_port(board_num, port.type, DigitalIODirection.IN) # Get a value from the digital port port_value = ul.d_in(board_num, port.type) # Get a value from the first digital bit bit_num = 0 bit_value = ul.d_bit_in(board_num, port.type, bit_num) # Display the port value print(port.type.name + " Value: " + str(port_value)) # Display the bit value print("Bit " + str(bit_num) + " Value: " + str(bit_value)) except ULError as e: util.print_ul_error(e) finally: if use_device_detection: ul.release_daq_device(board_num)