def supported_channel_types(self): chan_types = [] if self.is_supported: count = ul.get_config(InfoType.BOARDINFO, self._board_num, 0, BoardInfo.DAQONUMCHANTYPES) for type_index in range(count): chan_type = ul.get_config(InfoType.BOARDINFO, self._board_num, type_index, BoardInfo.DAQOCHANTYPE) chan_types.append(ChannelType(chan_type)) return chan_types
def get_config_array(self, info_type, board_num, count_item, value_item, wrapper_type=None): result = [] count = ul.get_config(info_type, board_num, 0, count_item) for item_num in range(count): config_value = ul.get_config( info_type, board_num, item_num, value_item) if wrapper_type == None: result.append(config_value) else: result.append(wrapper_type(config_value)) return result
def __init__(self, master): super(ULGT04, self).__init__(master) self.max_board_num = ul.get_config(InfoType.GLOBALINFO, 0, 0, GlobalInfo.NUMBOARDS) self.create_widgets() self.list_installed()
def _get_supported_scan_options(self): try: return ScanOptions( ul.get_config(InfoType.BOARDINFO, self._board_num, 0, BoardInfo.DACSCANOPTIONS)) except ULError: return ScanOptions(0)
def supported_ranges(self): result = [] # Check if the range is ignored by passing a bogus range in try: ul.a_out(self._board_num, 0, -5, 0) range_ignored = True except ULError as e: if (e.errorcode == ErrorCode.NETDEVINUSE or e.errorcode == ErrorCode.NETDEVINUSEBYANOTHERPROC): raise range_ignored = False if range_ignored: # Try and get the range configured in InstaCal try: curr_range = ULRange( ul.get_config(InfoType.BOARDINFO, self._board_num, 0, BoardInfo.DACRANGE)) result.append(curr_range) except ULError as e: if (e.errorcode == ErrorCode.NETDEVINUSE or e.errorcode == ErrorCode.NETDEVINUSEBYANOTHERPROC): raise else: for dac_range in ULRange: try: ul.a_out(self._board_num, 0, dac_range, 0) result.append(dac_range) except ULError as e: if (e.errorcode == ErrorCode.NETDEVINUSE or e.errorcode == ErrorCode.NETDEVINUSEBYANOTHERPROC): raise return result
def __init__(self, board_num): self._board_num = board_num # Get the board type from UL board_type = ul.get_config( InfoType.BOARDINFO, self._board_num, 0, BoardInfo.BOARDTYPE) self.resolution = self._get_resolution() self.num_ai_chans = self._get_num_ai_chans() self.num_ti_chans = self._get_num_ti_chans() self.available_ranges = self._get_available_ranges(self.resolution) self.supports_v_in = self._get_supports_v_in(self.available_ranges) self.supports_scan = self._get_supports_scan() if self.supports_scan: self.supported_scan_options = self._get_supported_scan_options() else: self.supported_scan_options = None self.packet_size = \ self._get_packet_size(board_type) self.continuous_requires_packet_size_multiple = \ self.packet_size != 1 self.supports_gain_queue = self._get_supports_gain_queue() self.supports_analog_trig = self._get_supports_analog_trig() self.analog_trig_resolution = 0 self.analog_trig_range = -1 if self.supports_analog_trig: self.analog_trig_resolution, self.analog_trig_range = \ self._get_analog_trig_info(board_type)
def _get_analog_trig_info(self, board_type): try: trig_source = ul.get_config( InfoType.BOARDINFO, self._board_num, 0, BoardInfo.ADTRIGSRC) except ULError: trig_source = 0 # PCI-DAS6030, 6031, 6032, 6033, 6052 # USB-1602HS, 1602HS-2AO, 1604HS, 1604HS-2AO # PCI-2511, 2513, 2515, 2517, USB-2523, 2527, 2533, 2537 # USB-1616HS, 1616HS-2, 1616HS-4, 1616HS-BNC type_a = [95, 96, 97, 98, 102, 165, 166, 167, 168, 177, 178, 179, 180, 203, 204, 205, 213, 214, 215, 216, 217] if board_type in type_a: if trig_source > 0: return 12, ULRange.UNKNOWN return 12, ULRange.BIP10VOLTS # PCI-DAS6040, 6070, 6071 type_b = [101, 103, 104] if board_type in type_b: if trig_source > 0: return 8, ULRange.UNKNOWN return 8, ULRange.BIP10VOLTS return 0, ULRange.UNKNOWN
def _get_num_digital_chans(self): try: return ul.get_config( InfoType.BOARDINFO, self._board_num, 0, BoardInfo.DINUMDEVS) except ULError: return 0
def __init__(self, master): super(ULGT03, self).__init__(master) self.board_num = 0 self.max_board_num = ul.get_config(InfoType.GLOBALINFO, 0, 0, GlobalInfo.NUMBOARDS) self.create_widgets() self.update_board_info()
def supported_scan_options(self): if self.supports_scan: scan_options_supported = ScanOptions( ul.get_config(InfoType.BOARDINFO, self._board_num, 0, BoardInfo.ADSCANOPTIONS)) else: scan_options_supported = None return scan_options_supported
def num_ports(self): try: port_count = ul.get_config(InfoType.BOARDINFO, self._board_num, 0, BoardInfo.DINUMDEVS) except ULError: port_count = 0 return port_count
def get_ad_info(self): try: num_ad_chans = ul.get_config(InfoType.BOARDINFO, self.board_num, 0, BoardInfo.NUMADCHANS) if num_ad_chans > 0: return "Number of A/D channels: " + str(num_ad_chans) + "\n" except ULError: return "" return ""
def get_da_info(self): try: num_da_chans = ul.get_config(InfoType.BOARDINFO, self.board_num, 0, BoardInfo.NUMDACHANS) if num_da_chans > 0: return ("Number of D/A channels: " + str(num_da_chans) + "\n") except ULError: return "" return ""
def get_counter_info(self): try: num_ctr_chans = ul.get_config(InfoType.BOARDINFO, self.board_num, 0, BoardInfo.CINUMDEVS) if num_ctr_chans > 0: return ("Number of counter devices: " + str(num_ctr_chans) + "\n") except ULError: return "" return ""
def get_digital_info(self): try: num_di_ports = ul.get_config(InfoType.BOARDINFO, self.board_num, 0, BoardInfo.DINUMDEVS) except ULError: return "" if num_di_ports < 1: return "" result = "" for port_num in range(0, num_di_ports): try: num_bits = ul.get_config(InfoType.DIGITALINFO, self.board_num, port_num, DigitalInfo.NUMBITS) result += ("Digital Port #" + str(port_num) + ": " + str(num_bits) + " bits\n") except ULError: pass return result
def get_temperature_info(self): try: num_ti_chans = ul.get_config(InfoType.BOARDINFO, self.board_num, 0, BoardInfo.NUMTEMPCHANS) if num_ti_chans > 0: return ("Number of temperature channels: " + str(num_ti_chans) + "\n") except ULError: return "" return ""
def analog_trig_range(self): # Get the analog trigger source try: trig_source = ul.get_config(InfoType.BOARDINFO, self._board_num, 0, BoardInfo.ADTRIGSRC) except ULError: trig_source = 0 if self.analog_trig_resolution > 0 and trig_source <= 0: trigger_range = ULRange.BIP10VOLTS else: trigger_range = ULRange.UNKNOWN return trigger_range
def get_expansion_info(self): try: num_exps = ul.get_config(InfoType.BOARDINFO, self.board_num, 0, BoardInfo.NUMEXPS) except ULError: return "" result = "" for exp_num in range(0, num_exps): try: exp_board_type = ul.get_config(InfoType.EXPANSIONINFO, self.board_num, exp_num, ExpansionInfo.BOARDTYPE) exp_mux_first_chan = ul.get_config(InfoType.EXPANSIONINFO, self.board_num, exp_num, ExpansionInfo.MUX_AD_CHAN1) result += ("A/D channel " + str(exp_mux_first_chan) + " connected to EXP (device ID=" + str(exp_board_type) + ").\n") except ULError: pass return result
def _get_available_ranges(self, ad_resolution): result = [] # Check if the board has a switch-selectable, or only one, range hard_range = ul.get_config( InfoType.BOARDINFO, self._board_num, 0, BoardInfo.RANGE) if hard_range >= 0: result.append(ULRange(hard_range)) else: for ai_range in ULRange: try: if ad_resolution <= 16: ul.a_in(self._board_num, 0, ai_range) else: ul.a_in_32(self._board_num, 0, ai_range) result.append(ai_range) except ULError as e: if (e.errorcode == ErrorCode.NETDEVINUSE or e.errorcode == ErrorCode.NETDEVINUSEBYANOTHERPROC): raise return result
def _get_analog_trig_info(self, board_type): try: trig_source = ul.get_config( InfoType.BOARDINFO, self._board_num, 0, BoardInfo.ADTRIGSRC) except ULError: trig_source = 0 type_a = [95, 96, 97, 98, 102, 165, 166, 167, 168, 177, 178, 179, 180, 203, 204, 205, 213, 214, 215, 216, 217] if board_type in type_a: if trig_source > 0: return 12, ULRange.UNKNOWN return 12, ULRange.BIP10VOLTS # PCI-DAS6040, 6070, 6071 type_b = [101, 103, 104] if board_type in type_b: if trig_source > 0: return 8, ULRange.UNKNOWN return 8, ULRange.BIP10VOLTS return 0, ULRange.UNKNOWN
def _get_supported_scan_options(self): return ScanOptions(ul.get_config( InfoType.BOARDINFO, self._board_num, 0, BoardInfo.ADSCANOPTIONS))
def _get_ctr_type(self): return CounterChannelType( ul.get_config(InfoType.COUNTERINFO, self._board_num, self._dev_num, CounterInfo.CTRTYPE))
def _get_channel_num(self): return ul.get_config(InfoType.COUNTERINFO, self._board_num, self._dev_num, CounterInfo.CTRNUM)
def _get_num_chans(self): return ul.get_config(InfoType.BOARDINFO, self._board_num, 0, BoardInfo.NUMDACHANS)
def _get_digital_dev_type(self): return DigitalPortType( ul.get_config(InfoType.DIGITALINFO, self._board_num, self._port_index, DigitalInfo.DEVTYPE))
def get_board_type(self, board_num): try: return ul.get_config( InfoType.BOARDINFO, board_num, 0, BoardInfo.BOARDTYPE) except ULError: return 0
def _get_resolution(self): return ul.get_config(InfoType.BOARDINFO, self._board_num, 0, BoardInfo.DACRES)
def _get_out_mask(self): return ul.get_config(InfoType.DIGITALINFO, self._board_num, self._port_index, DigitalInfo.OUTMASK)
def get_max_board_num(self): return ul.get_config( InfoType.GLOBALINFO, 0, 0, GlobalInfo.NUMBOARDS)
def _get_num_bits(self): return ul.get_config(InfoType.DIGITALINFO, self._board_num, self._port_index, DigitalInfo.NUMBITS)