Giter Site home page Giter Site logo

Error running the example code about mcculw HOT 11 CLOSED

mccdaq avatar mccdaq commented on July 29, 2024
Error running the example code

from mcculw.

Comments (11)

jeffreyg3 avatar jeffreyg3 commented on July 29, 2024

Hi anubok,
BIP5VOLTS is a valid range when you are configured for differential input mode, but if you are configured for single ended, use BIP10VOLTS exclusively (same range works for differential).

from mcculw.

anubok avatar anubok commented on July 29, 2024

from mcculw.

jeffreyg3 avatar jeffreyg3 commented on July 29, 2024

Hello Anushree,
You can programmatically change the front end configuration. You were close, Use this function instead:
ul.a_input_mode(board_num, input_mode)
Where board_num is the board number in InstaCal or created during Device Discovery()
input_mode = AnalogInputMode.SINGLE_ENDED
or
input_mode = AnalogInputMode.DIFFERENTIAL

from mcculw.

anubok avatar anubok commented on July 29, 2024

from mcculw.

jeffreyg3 avatar jeffreyg3 commented on July 29, 2024

Yes, changing the board number is how you alternate between the different devices you have in your system/configuration.

from mcculw.

anubok avatar anubok commented on July 29, 2024

from mcculw.

jeffreyg3 avatar jeffreyg3 commented on July 29, 2024

Hi Anushree
I believe I see where you went wrong. You are creating 1 single variable called device and then overwriting it each time with a different MCC Device.

I created a test app for this, so I could show it to you. Here are the important pieces:
Instance of 3 devices:

    ul.ignore_instacal()
    self.create_widgets()
    self.discover_devices()

def discover_devices(self):
    # Get the device inventory
     self.inventory = ul.get_daq_device_inventory(InterfaceType.USB)

     for self.board_num in range (0,3):
        if len(self.inventory) > 0:
            if self.board_num == 0:
                self.device0 = self.inventory[self.board_num]

            if self.board_num == 1:
                self.device1 = self.inventory[self.board_num]

            if self.board_num == 2:
                self.device2 = self.inventory[self.board_num]

     if self.device0 != None:
        self.board_num = 0
        ul.create_daq_device(self.board_num, self.device0)
        ul.flash_led(self.board_num)
        self.device_0_id_label["text"] =  self.device0.unique_id
        self.device_0_name_label["text"] = self.device0.product_name
        ul.a_input_mode(self.board_num, AnalogInputMode.SINGLE_ENDED) 
        self.ai_props = AnalogInputProps(self.board_num) 
        self.ao_props = AnalogOutputProps(self.board_num)

     if self.device1 != None:
         self.board_num = 1
         ul.create_daq_device(self.board_num, self.device1)
         ul.flash_led(self.board_num)
         self.device_1_id_label["text"] =  self.device1.unique_id
         self.device_1_name_label["text"] = self.device1.product_name
         ul.a_input_mode(self.board_num, AnalogInputMode.SINGLE_ENDED) 
         self.ai_props = AnalogInputProps(self.board_num) 
         self.ao_props = AnalogOutputProps(self.board_num)

     if self.device2 != None:
         self.board_num = 2
         ul.create_daq_device(self.board_num, self.device2)
         ul.flash_led(self.board_num)
         self.device_2_id_label["text"] =  self.device2.unique_id
         self.device_2_name_label["text"] = self.device2.product_name
         ul.a_input_mode(self.board_num, AnalogInputMode.SINGLE_ENDED) 
         self.ai_props = AnalogInputProps(self.board_num) 
         self.ao_props = AnalogOutputProps(self.board_num)

###Note I created device0, device1, and device2

to read the various voltages:

def update_value(self):
try:
self.board_num = 0
channel = 0
ai_range = ULRange.BIP10VOLTS
value = ul.v_in(self.board_num, channel, ai_range)
self.value_0_label["text"] = '{:.4f}'.format(value)

        self.board_num = 1
        channel = 0   
        ai_range = ULRange.BIP10VOLTS    
        value = ul.v_in(self.board_num, channel, ai_range)
        self.value_1_label["text"] = '{:.4f}'.format(value)

        self.board_num = 2
        channel = 0   
        ai_range = ULRange.BIP10VOLTS    
        value = ul.v_in(self.board_num, channel, ai_range)
        self.value_2_label["text"] = '{:.4f}'.format(value)
        
        if self.running:
            self.after(100, self.update_value)
    except ULError as e:
        self.show_ul_error(e)

And the output:
image

from mcculw.

jackeisenbach3 avatar jackeisenbach3 commented on July 29, 2024

Hi,

I am using Python 2.7.14 in Cygwin on a Windows 10 machine. I don't see installation tasks for this setup. Can you point me in the right direction to get this running?

Thanks,
Jack

from mcculw.

jackeisenbach3 avatar jackeisenbach3 commented on July 29, 2024

Also, I am evaluating an MC USB-1208FS device. Thanks, Jack

from mcculw.

jeffreyg3 avatar jeffreyg3 commented on July 29, 2024

Hello Jack,
Our drivers were never tested with Cygwin. It is not believed they are compatible.
Cygwin is a virtual Linux environment running on Windows and cannot use our Windows hardware drivers. Conversely, since Cygwin is emulating Linux, it cannot use our Linux hardware drivers either since it is running on Windows.
Best regards,
Jeff

from mcculw.

jackeisenbach3 avatar jackeisenbach3 commented on July 29, 2024

from mcculw.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.