Ejemplo n.º 1
0
    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
Ejemplo n.º 2
0
    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
Ejemplo n.º 3
0
    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()
Ejemplo n.º 4
0
 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)
Ejemplo n.º 5
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
Ejemplo n.º 6
0
    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)
Ejemplo n.º 7
0
    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
Ejemplo n.º 8
0
 def _get_num_digital_chans(self):
     try:
         return ul.get_config(
             InfoType.BOARDINFO, self._board_num, 0,
             BoardInfo.DINUMDEVS)
     except ULError:
         return 0
Ejemplo n.º 9
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()
Ejemplo n.º 10
0
 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
Ejemplo n.º 11
0
    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
Ejemplo n.º 12
0
    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 ""
Ejemplo n.º 13
0
    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 ""
Ejemplo n.º 14
0
    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 ""
Ejemplo n.º 15
0
    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
Ejemplo n.º 16
0
    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 ""
Ejemplo n.º 17
0
    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
Ejemplo n.º 18
0
    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
Ejemplo n.º 19
0
    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
Ejemplo n.º 20
0
    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
Ejemplo n.º 21
0
 def _get_supported_scan_options(self):
     return ScanOptions(ul.get_config(
         InfoType.BOARDINFO, self._board_num, 0,
         BoardInfo.ADSCANOPTIONS))
Ejemplo n.º 22
0
 def _get_ctr_type(self):
     return CounterChannelType(
         ul.get_config(InfoType.COUNTERINFO, self._board_num,
                       self._dev_num, CounterInfo.CTRTYPE))
Ejemplo n.º 23
0
 def _get_channel_num(self):
     return ul.get_config(InfoType.COUNTERINFO, self._board_num,
                          self._dev_num, CounterInfo.CTRNUM)
Ejemplo n.º 24
0
 def _get_num_chans(self):
     return ul.get_config(InfoType.BOARDINFO, self._board_num, 0,
                          BoardInfo.NUMDACHANS)
Ejemplo n.º 25
0
 def _get_digital_dev_type(self):
     return DigitalPortType(
         ul.get_config(InfoType.DIGITALINFO, self._board_num,
                       self._port_index, DigitalInfo.DEVTYPE))
Ejemplo n.º 26
0
 def get_board_type(self, board_num):
     try:
         return ul.get_config(
             InfoType.BOARDINFO, board_num, 0, BoardInfo.BOARDTYPE)
     except ULError:
         return 0
Ejemplo n.º 27
0
 def _get_resolution(self):
     return ul.get_config(InfoType.BOARDINFO, self._board_num, 0,
                          BoardInfo.DACRES)
Ejemplo n.º 28
0
 def _get_out_mask(self):
     return ul.get_config(InfoType.DIGITALINFO, self._board_num,
                          self._port_index, DigitalInfo.OUTMASK)
Ejemplo n.º 29
0
 def get_max_board_num(self):
     return ul.get_config(
         InfoType.GLOBALINFO, 0, 0, GlobalInfo.NUMBOARDS)
Ejemplo n.º 30
0
 def _get_num_bits(self):
     return ul.get_config(InfoType.DIGITALINFO, self._board_num,
                          self._port_index, DigitalInfo.NUMBITS)