GPIB class device is ambiguous

Hello,
I am using Visual Basic.Net to program a PXI system and trying to talk to GPIB instruments using the code, but when I dimension the variable as the Class Device, which contains the IEEE-4882 functionality, I get an error. The statement, taken from one of the .NET examples, reads  "Private GPIB Device as Device". The error reads - 'Device' is ambiguous, imported from the namespaces or types 'NationalInstruments.NI4882, NationalInstruments.DAQmx'.
If I remove the DAQmx information (Imports NationalInstruments.DAQmx), then the error goes away. Also, it seems I can communicate with my GPIB instruments when I go into MAX under the GPIB information. I can query the instruments under "Communicate with Instruments" and they return the proper information.
Is there something that I am missing? Any help would be appreciated.
Thanks,
Mike

Hi Mike,
It seems that both DAQmx and NI 488.2 define something as a device, and they don't agree on that definition.  The best practice would probably be to have sepearte assemblies run the DAQmx and NI 488.2 code segments, and avoid having the conflict that way.  If there is a particulare reason that you need to have the code segment in the same assembly I am fairly certain if you explicity define the class path by placing.
Global.NationalInstruments.NI4882.Device
Instead of just device that you should be able to run the code.  I would recommend just removing Imports NationalInstruments.DAQmx and implementing it in a seperate piece of code.  Let me know if this is still causing trouble.
Have a great day,
Michael D
Applications Engineering
National Instruments

Similar Messages

  • USB MIDI class-device oddities with more than 16 ports

    Hi,
    just playing around with programming an USB device stack for the AT91SAM7 MCUs. Because i do a lot in music electronics, i tried to implement a MIDI device (Audio/MIDISTREAMING) according to the specs:
    http://www.usb.org/developers/devclass_docs/midi10.pdf
    And, just for fun, i wanted to try if it works if i use 2 output endpoints to get (theoretically) 32 physical MIDI OUT connectors. According to the specs, this should be possible (page 9):
    "The USB-MIDI Converter typically contains one or more MIDI IN and/or MIDI OUT endpoints."
    "Each MIDI Endpoint in a USB-MIDI converter can be connected to up to 16 Embedded MIDI Jacks."
    So. I can use "more" IN and/or OUT endpoints. I did so. I have 1 IN endpoint, 2 OUT endpoints. And on each endpoint, i have 16 embedded jacks connected to the external jacks (which in fact are currently just simulated
    Now what is the reason why i write this?
    On reception of data, everything works fine so far, but i didn't check with more than 1 endpoint so far. On transmission, i can address the first 16 jacks on the first endpoint without any problems, but the other 16 jacks (which are on the second endpoint) are routed to the first endpoint by OSX.
    I can see this in the display i have on the MCU, and i also can see that everything goes to the other endpoint if i just exchange the endpoint numbers in the configuration descriptors. So i think my code on the MCU does the right things, but OSX doesn't seem to be able to handle more than one output endpoint.
    This also might apply to the input endpoints, i don't know.
    Did anyone observe similar problems? I don't talk about such things like those Emagic interfaces, they are not implemented according to the standard class device specs, they have some more features and need a proprietary implementation.
    Not that this would be too important, but i think it might be a bug worth fixing.
    ...Michael

    Either i'm asking in the wrong forum or you are posting on the wrong threads
    I will virtualize the situation for you, the rest please stay with the initial post, as meanwhile, all the important details are lost.
    Yes, this is a box with 32 MIDI-Out connectors and 16 MIDI-In connectors besides the USB connector. I can see this interface with exactly this configuration in Audio-MIDI-Setup (now this is real, not virtual , and if i configure any software to output on Port 1-16 (not channel!), the signal appears on Port 1-16, but when i configure Port 25, it appears on Port 9. So Instead of Ports 17-32, OSX sends the data to Ports 1-16 again.

  • Reference to class List is ambiguous

    Hello,
    I've started to make my first java program in which I use AWT.
    When I compile the file, it gave me this error:
    "reference to List is ambiguous, both class java.awt.List in java.awt and class java.util.List in java.util match"
    So I use some tools from the java library: java.util ( f.e. arrays)
    and I use of course the library: java.awt
    Now when I try to make a list:
    f.e.
    List data = new List(10,false);
    The program doesn't know if I want to use the method List, from AWT or UTIL
    In fact, I want to use this from AWT.
    How can I make that clear.
    Thx

    It will probably work if you add "import java.awt.List;" to your imports. If that doesn't do it, you will need to specify which List when you declare or instantiate it. For example, if you now have
    List list = new List(10,false);
    Then change it to
    java.awt.List list = new java.awt.List(10,false);

  • IChat and USB Video Class devices - where to file feature requests?

    Hi,
    i'm using a Logitech 9000 Pro for video chat (iChat, Skype), and found the "generic" support of MacOS X somewhat lacking. While i'm happy with the out-of-the-box support, both running it in Parallels Windows XP and peeking around with Apple's USB Prober application revealed that the camera is capable of lots more features (USB Prober even lists them all) that the video input of MacOS X simply ignores. i.e. you can only use 320x240 (10.4) or 640x480 (10.5), 10 fps, OR (in Quicktime Pro) 1600x1200, 5 fps.
    So my question is:
    Is a feature request for an additional pop-up menu (like "use video stream 640x480 @ 30 fps" in the camera selector) best filed for iChat, or Quicktime, or maybe "OS X" (since it seems to be an operating system driver)?

    Yes to all of those.
    Sometimes settings made in other places are held between apps.
    Take a Look at the Quicktime Preferences for the Player if you have Quicktime Pro or even iMovie
    10:41 PM Friday; February 22, 2008

  • Difficulty in reading GPIB device(power meter)

    I am using the following Vi attached. i am generating array of frequency writing it to the signal generator with GPIB address 28.afterawards reading powermeter with GPIB address.and finally writing it to the file.
    the problem is some times this GPIB read does not work properly. i get error from the power meter. in the read array it displays trigger or Nrvs or some thing different. i thought may be it is due to initializing of power meter. i send SC1 command for power meter initialization. but it does not work. why ? i attached the manual of power meter and signal generator.
    thanks for some help
    Attachments:
    27_10.zip ‏57 KB
    manual.zip ‏13855 KB

    yes you are right.but if i just execute this driver and afterwards i execute my VI i get some reading from power meter in the form of an string array. it is like this i write an array of frequencies to signal generator at GPIB address 28.and then other device(power meter) is connected at GPIB address 13.
    this device returns reading in the form an array string. i thought that i must send/write some command to GPIB 13 device (power meter), so that it starts sending data.this is i am doing in my VI by sending SC1 command. may be i am using wrong command or may be i must send some sequence of command.
    the problem with executing the driver, that you mentioned is that i have to execute this driver VI all the time just before my VI.if i execute this driver VI/DL
    L then every thing is fine and my VI sends and read reading according to my wish. but what happened if all these devices are initialized or reset,my VI does not run any more. and because i dont know which part of this driver VI cause this activation to react, i just have to blindly execute the driver every time without understanding what should i do in my VI that i dont need to execute the driver any more and this VI would be independent of driver VI.
    thanks

  • Sometimes unable to talk to device with GPIB-ENET

    I am using a NI GPIB-ENET device with my own application on a VMS Alpha computer. It is issuing commands to the device correctly but if I restart quickly the application it sometimes does not work.It seems that if I wait long enough the it works ok. Are the sockets on the GPIB-ENET configured to linger ?

    Hi zemaitis,
    The GPIB-ENET device is not "configured" to linger, but it does have more lag time than, say, a PCI GPIB card. The reason is that you have an increased amount of lag time due to the time it takes to transmit data over the ethernet cable. Here is a link to a Knowledge Base article that does not address this issue directly, but does point out that the ENET device has a larger lag time than other GPIB devices:
    Knowledge Base 38M9C9FJ: Execution Difference Between GPIB-ENET and PCI-GPIB
    Because of this extra communication time, you may not be able to restart your application extremely quickly. I hope this information is useful to you. Have a g
    reat day.
    -John M

  • Creating LabView application for VME-GPIB device

    I am trying to learn how to create software for controlling GPIB devices attached to the VME-GPIB board. One application would be for a setup where Labview is the software used. Another is a real-time system developed with VxWorks.
    It seems to me, that in order to be able to create such a LabView application I need detailed information on the VME-GPIB VME memory layout and definitions of all of its registers. Am I right assuming that? Suppose that I am right, where can I get such detail information on the VME properties of the VME-GPIB device?
    I found such a document for the GPIB-1014 device, which seems to be a precursor to the VME-GPIB device.
    Am I correct assuming that such manual would also be essential for writing VxWorks software as well?
    Thanks in advance,
    Zen

    Zen,
    I have received your support email regarding this issue and currently working on getting you the needed information. I will contact you when it is ready.

  • Producer/Consumer Design Pattern with Classes

    I'm starting a new project which involves acquiring data from various pieces of equipment using a GPIB port.  I thought this would be a good time to start using Classes.  I created a GPIB class which contains member data of:  Address, Open State, Error; with member vis such as Set Address, Get Address, Open, Close...general actions that all GPIB devices need to do.  I then created a child class for a specific instrument (Agilent N1912 Power Meter for this example) which inherits from the GPIB class but also adds member data such as Channel A power and Channel B power and the associated Member Functions to obtain the data from the hardware.  This went fine and I created a Test vi for verfication utilizing a typical Event Structure architecture. 
    However, in other applications (without classes) I  typically use the Producer/Consumer Design Pattern with Event Structure so that the main loop is not delayed by any hardware interaction.  My queue data is a cluster of an "action" enum and a variant to pass data.  Is it OK to use this pattern with classes?  I created a vi and it works fine and attached is a png (of 1 case) of it.
    Are there any problems doing it this way?
    Jason

    JTerosky wrote:
    I'm starting a new project which involves acquiring data from various pieces of equipment using a GPIB port.  I thought this would be a good time to start using Classes.  I created a GPIB class which contains member data of:  Address, Open State, Error; with member vis such as Set Address, Get Address, Open, Close...general actions that all GPIB devices need to do.  I then created a child class for a specific instrument (Agilent N1912 Power Meter for this example) which inherits from the GPIB class but also adds member data such as Channel A power and Channel B power and the associated Member Functions to obtain the data from the hardware.  This went fine and I created a Test vi for verfication utilizing a typical Event Structure architecture. 
    However, in other applications (without classes) I  typically use the Producer/Consumer Design Pattern with Event Structure so that the main loop is not delayed by any hardware interaction.  My queue data is a cluster of an "action" enum and a variant to pass data.  Is it OK to use this pattern with classes?  I created a vi and it works fine and attached is a png (of 1 case) of it.
    Are there any problems doing it this way?
    Including the error cluster as part of the  private data is something I have never seen done and ... well I'll have to think about that one.
    Ben
    Ben Rayner
    I am currently active on.. MainStream Preppers
    Rayner's Ridge is under construction

  • Using a non UBS video class camera in ichat

    Hi,
    I have a Panasonic HDC-SD5 camera which I am trying to set up for use in iChat, as a webcam
    It has a DV-out out, but when plugged in and turned on it isn't recognised as a USB Video Class device
    Does anyone know if there is a driver/program around to make this possible?
    My machine is a macbook pro, the camera is a Panasonic HDC-SD5 (records onto SD card in AVCHD format)
    Any help appreciated, let me know if I can provide more info

    The only thing to try then is iUSBcam http://www.ecamm.com/mac/iusbcam/ but dont hold your breath.

  • How do I create Labview VISA ports for *individual* GPIB instruments using Prologix USB GPIB controller?

    Hello,
    I'm trying to use a Prologix USB GPIB controller to control GPIB
    instruments, and I would like to have a virtual serial (VISA) port for
    *each instrument*, as is the case with a normal GPIB controller with a
    standard NI driver. However this is not what the Prologix driver
    provides -- it provides a single VISA virtual serial port for the
    entire controller. To address the instrument with GPIB address 11,
    you first send "++addr 11" to the serial port, and then you're talking
    to instrument 11. However, this means I have to change all old
    Labview programs.
    Is it possible to create a "wrapper" function of some kind that will
    define a virtual serial (VISA) port for each *instrument* on the
    controller? For example, to talk to GPIB instrument 11, call it
    ASRL3::11::INSTR, each time it is written to it would have to write to
    the virtual serial port of the controller, say ASRL3::INSTR, first "+
    +addr 11" and then the command that is sent to it.
    A clearer explanation of the difference (i.e. incompatibility), and of
    my objective:
    1) A normal GPIB controller with NI driver: I go to the NI
    Measurement & Instrumentation Panel, under GPIB, and Scan for
    Instruments; all the live instruments show up; subsequently when I
    want to use Labview programs that use VISA ports, the VISA drop boxes
    allow me to choose a different port for each instrument, e.g.
    "GPIB0::11::INSTR", "GPIB0::12::INSTR" would be instruments at
    addresses GPIB 11 and GPIB 12.
    2) The Prologix GPIB controller that plugs into a USB port: In
    Labview you get a *single* VISA virtual serial port, ASRL3::INSTR, for
    the entire GPIB0 controller. Therefore to address GPIB instrument 11,
    you write "++addr 11" to the virtual serial port ASRL3::INSTR, and
    then you are communicating with device 11, so you can write and read
    ASRL3::INSTR to talk to that device. Then to talk to device GPIB 12,
    you write "++addr 12" to the same VISA port, and then you are talking
    to that device. The problem is that this requires recoding all
    Labview code, whereas I would like to be able to use the same program
    either with a normal or with a Prologix GPIB controller. Therefore, I
    would like to create code that scans the controller for all GPIB
    attached devices and creates VISA ports for all. Such ports, when
    written to, would have to first write "++addr DEVICENUM" to
    ASRL3::INSTR (i.e. the port of the GPIB-USB controller) where
    DEVICENUM is the GPIB address of the instrument corresponding to that
    port, and then would have to do a write or read or whatever function
    is being done on that instrument VISA port.
    I haven't figured out if it is possible to do this easily. Help and
    pointers on where to look for hints would be much appreciated. Many
    thanks!
    Milos

    My first impression is that if you don't want to make any changes at all to existing programs is that the wrapper you need is one around VISA. You would need to intercept all of the calls into the NI VISA driver. If you create your own visa32.dll and in there, change the addressing and then call the real VISA driver, you might (repeat, might) get something to work. If this would even work, you still might find that you have to make significant changes anyway. The serial connection is going to be considerably slower, and interface specific functions such as service request handling, bus triggering of multiple instruments, etc., would be difficult to impossible. This would be a lot of work, imho, to just save a couple of hundred dollars over a real GPIB controller. I've seen this Prologix device before and have even used NI's RS-232->GPIB controller. The Prologix intended use to me seems to me more for a hobbyist or very casual user. Of course, I'm used to having multiple GPIB instruments worth 10s/100s of thousands of dollars and the cost of an fully compliant GPIB controller is just lost in the noise.

  • HT4325 Will there be a point in time when I can multiple speaker play to my Air devices, and my AppleTvs?  Or do I need redundant Air @ the tv too?

    Background
    I drank the coolaid and have a MacMini command center along with all my PC's and Wifi and this and that.
    I have a few Airport expresses in random locations.. bathroom.. kitchen... I also have an Apple Tv in the fam room, and bedroom.
    From the Mac I see I can play songs in iTunes, click Multiple speakers, and choose all my AirExpress devices.  However I cannot also mutiple to the AppleTvs.  Of course I can AirPlay to a single tv, or a single AirExpress. 
    Question
    Will there be a point in time where I can choose 'Multiple Speaker', and select all my home AirExpress class devices, and the AppleTv devices?
    Current Infrastucture --- Will easily support my ambient musical desires.
         Mac Mini 2012, running 10.8.
         AirPort Expresses, newest generation.    
         AppleTv 3's, 5.1 not the developer 5.1+ yet.
         Whole house each floor and exterior, one SSID wifi network, multiple bands, (cisco e3000)'s running dd-wrt with a backend WDU.
         Multiple Linksys (SRW208P)'s wired switching fabric, 802.1q and all that jazz.

    Ok looks like the latest updates made this possible.

  • SRQ Line no longer works on a PCI-GPIB

    I have just upgraded a test pc, (tranfering hardware, reinstalling software etc) and now I have a fault with the PCI-GPIB card.
    One of the instruments connected to the PC (HP34401 multimeter) uses the SRQ line to indicate when its ready to download its readings. The LV 5.0 code uses the standard legacy drivers from NI and these drivers use the 'wait for SRQ' function which are now timing out in the new setup.
    The rest of the card functionality seems ok, and it tests ok. The LV code and cables are fine, because I can run the system with a USB-GPIB-B device.
    Has anybody had the same problem?
    Could it be a hardware specific driver problem?
    The current config is:
    1.7GHz PC with 512Mb Ram
    PCI-GPIB
    PCI-1200
    LV 5.0.1
    NI-
    488.2 Version 2.0
    VISA 2.6.1
    NIDAQ 6.7
    Thanks for your help
    Tim

    Hi Tim,
    I found this knowledge base article which seems to address the same problem:
    Why is the Agilent 34401A Driver's Getting Started VI Timing Out?
    Hope this helps out.
    DiegoF
    National Instruments.

  • GPIB-ENET not working in Windows NT 4.0

    I have a GPIB-ENET device and I want to configure it with Windows NT4.0 I
    have install everything like it is said in the NI web site and everything
    seems to be fine. When I try to talk to the instruments with Win32
    Interactive Control (IBIC) it works.
    I have created an application (In Visual C++ and the ComponentWorks++) to
    communicate with the GPIB device wich work perfecly on Windows 98, and I
    have a VI who also works well with Windows 98 but none of them works on
    Windows NT4.0. When I connect to the GPIB device I use "GPIB0::2::INSTR" as
    the address of the GPIB instruments and it work with win98, but doesn't with
    NT.
    I can see the GPIB-ENET device but where or how can I see the instruments
    that are pluged i
    n the GPIB-ENET? What are there connection string
    "GPIB0::????"
    Is the problem in my application or in the configuration of Windows NT?
    Anybody had this problem?
    thanks in advance
    [email protected]

    I has similar problem before update GPIB-ENET driver to version 1.2, On some
    systems with NT4 downgrade VISA 2.6 to VISA 2.5 may help - from old CDs for
    LV5.1
    "Eric Clermont" wrote in message
    news:[email protected]..
    > I have a GPIB-ENET device and I want to configure it with Windows NT4.0 I
    > have install everything like it is said in the NI web site and everything
    > seems to be fine. When I try to talk to the instruments with Win32
    > Interactive Control (IBIC) it works.
    >
    > I have created an application (In Visual C++ and the ComponentWorks++) to
    > communicate with the GPIB device wich work perfecly on Windows 98, and I
    > have a VI who also works well with Windows 98 but none of them works on
    > Windows NT4.0. When I conn
    ect to the GPIB device I use "GPIB0::2::INSTR"
    as
    > the address of the GPIB instruments and it work with win98, but doesn't
    with
    > NT.
    >
    > I can see the GPIB-ENET device but where or how can I see the instruments
    > that are pluged in the GPIB-ENET? What are there connection string
    > "GPIB0::????"
    >
    > Is the problem in my application or in the configuration of Windows NT?
    > Anybody had this problem?
    >
    > thanks in advance
    >
    > [email protected]
    >
    >

  • GPIB and Desktop RT

    I am running the following:
    Desktop Labview Real Time 11.0
    NI-VISA Server 5.1
    and am using an NI PCI-GPIB card to connect to a couple of different pieces of lab equipment.
    When I connect to this remote system from another workstation using MAX, I do see GPIB0 (PCI-GPIB) under devices and Interfaces on the RT machine, but I cannot figure out how to see the GPIB instruments that are connected to the bus.
    I don't think it is a electrical problem on the bus because when I boot the workstation into windows instead of RT, I can see the instruments just fine using Max on that machine.
    Rick
    PS: The workstation I use to connect to the RT machine remotely runs a current version of Labview
    Rick Foster
    MIT Kavli Institute for Astrophysics and Space Research
    Solved!
    Go to Solution.

    The current VISA Interactive Control layout is a bit differenent from the tutorial.
    I do see the instruments now, but they are listed under localhost and I get an error when I try to list them on the remote machine that the GPIB controller is installed in.
    I can now access the instruments in my code, but this Localhost versus Remote machine bit is confusing.
    Rick
    Rick Foster
    MIT Kavli Institute for Astrophysics and Space Research

  • "instance of" a class

    I'm writing a test program for our lab using LVOOP. All instruments are child classes of a general device.lvclass. I want to be able to save and load the specific system configuration (what instrument are used). In order to know which specific child class is loaded I thought of saving the class path in the config file and using the Default Instance property of the class library dynamically load the specific objects (see path2class.bmp).
    Is there a way to define a method in the general parent class that uses the dynamical despatch inputs to get the incoming wire type? Please find class2path.bmp for my basic idea which DOESN'T work.
    Thanks a lot,
    Y
    Attachments:
    class2path.png ‏10 KB
    path2class.png ‏7 KB

    Here is my project. It is an OO based general test program that follows the following guidelines-
    1. Provide a simple template for standard experiments (e.g. vector scanning- IV curves etc) both in run time or using the LV block diagrams.
    2. Easy to add new instruments.
    3. Modular so complex experiments are easily built from the simple blocks.
    4. EASY to maintain and debug.
    The zip file contains the parent class- device, a few instruments as child classes and an almost finished rack.lvclass which manges the experimetal setup. Next I will make the experiment classes. The general guidelines of my work can be found in the attached txt file.
    Attachments:
    OO Lab.zip ‏3522 KB
    class measurement.txt ‏8 KB

Maybe you are looking for