Best way to distribute LabVIEW Instruments Drivers.

Hello,
I'm trying to stick to the standards described just there:
Developing LabVIEW Plug and Play Instrument Drivers
Instrument Driver Development Tools and Resources
Instrument Driver Guidelines
However, I cannot see clearly what is the best way to distribute the LabVIEW Instruments Drivers, except that I need to be compliant with those standards to be on the IDNET (Instrument Drivers Network).
Here is a couple of questions I'm not really sure about their answers:
Is it okay to use a .NET dll and to make some calls?
Is it fine to hide the Block Diagram? With passwords in the Drivers
Can we put prevent the modification
In my situation several devices (or let's say modules can controlled through one communication medium), so basically I might have one instrument drivers for several things.,,
May I use some OOD? In order to control the equipment with methods and set some properties and encapsulate the communication stuff in classes, some equipments could be consider are inherited from others (more recent for instance), or this is totally prohibited by the guidelines above?
What is the most suitable Specification Build type: Packet Library or other? If packed library, how to handle the early version created issue when opening the lib with newer version of LabVIEW then?
How to deal with the copyright thing, do I need to copy and paste the copyright on both the Front Panel and on the Block Diagram?
Is this copyright enough: "Copyright (c) <Company Name>. All rights reserved"?
Solved!
Go to Solution.

Ehouarn wrote:
Hello,
I'm trying to stick to the standards described just there:
Developing LabVIEW Plug and Play Instrument Drivers
Instrument Driver Development Tools and Resources
Instrument Driver Guidelines
However, I cannot see clearly what is the best way to distribute the LabVIEW Instruments Drivers, except that I need to be compliant with those standards to be on the IDNET (Instrument Drivers Network).
Here is a couple of questions I'm not really sure about their answers:
Is it okay to use a .NET dll and to make some calls?
Is it fine to hide the Block Diagram? With passwords in the Drivers
Can we put prevent the modification
In my situation several devices (or let's say modules can controlled through one communication medium), so basically I might have one instrument drivers for several things.,,
May I use some OOD? In order to control the equipment with methods and set some properties and encapsulate the communication stuff in classes, some equipments could be consider are inherited from others (more recent for instance), or this is totally prohibited by the guidelines above?
What is the most suitable Specification Build type: Packet Library or other? If packed library, how to handle the early version created issue when opening the lib with newer version of LabVIEW then?
How to deal with the copyright thing, do I need to copy and paste the copyright on both the Front Panel and on the Block Diagram?
Is this copyright enough: "Copyright (c) <Company Name>. All rights reserved"?
Not sure about 1) but 2) and 3) are definitely a no go if you want your library to be distributable through the ID network. The standard only allows for DLLs in that  are really developed in C but would require you to also distribute the C code as far as I understand.
OOP may not be a problem.
Packed Library is definitely not something you want to do. They only work in the LabVIEW version in which they were created. You will hate the moment you decided to go with packed libraries as requests come in for other LabVIEW versions and your drivers are bashed on all discussion forums as being a pain in the ass to use.
Rolf Kalbermatter
CIT Engineering Netherlands
a division of Test & Measurement Solutions

Similar Messages

  • Best way to update AC97 audio drivers?

    Is the best way to update AC97 audio drivers = dl. from msi the latest drivers which are 5.10.00.5970 (A3.80) I currently have 5890. Then uninstalling old ones from add-remove programs then install newest ones. Since live update doesn't seem to get it done. Thanks
    Den

    I agree with the package that is in Dr Stu's link, I downloaded that complete package which includes NVMixer for speaker setup and fine tuning your sound system.
    Regards; Pop's

  • What is the best way to distribute your swing application:

    I have developed a application that connects to data base and it containes the functionality to manage the invoices and receipts system, but i am scare to distribute it by building it to jar using the netbeans build option , it runs fine but when i extract the jar file back i m scare that any one can easily decompile it using JAD and get the database credentials , please tell me the best way to distribute the application so that reverse engineering the application will not be possible please tell me that :(

    Decompiling is unnecessary. All somebody would have to do would be to sniff the transmissions between your application and your database; the credentials are sent unencrypted.
    So the problem is not that somebody could find out the database credentials, the problem is that your database exposes itself to the internet. And if anybody does find the credentials through any method at all, then you've got a problem.
    And by the way if you distribute your application with the credentials hard-coded, then that makes it difficult for you to change the password if it does get compromised, because then nobody can use your application any more. This is a bad thing because one of the first things you should do when your system is compromised is to change the access password.
    So really the best way to distribute this application would be to write it so that it connects to an application which runs on your server. This server application would communicate with the database, which would make it unnecessary for the database to be visible from the internet. Your Swing application would communicate with the server application via some kind of web service protocol.

  • Best way to distribute configuration values to subVIs

    I have a main VI with ~10 subVIs, all of which have a number of default constants embedded. I want to change my architecture so that all the constants are moved to a single ASCII text file which is not changed during program execution. I'm trying to decide the best way to do this:
    - Read the file every time a subvi is opened (this is frequent).
    - Use the "Read Key" function (this may be essentially the same).
    - Read the file once at the beginning of execution, and store the values in a cluster which is passed to each subVI.
    - Read the file once at the beginning of execution, and store the values in several clusters, passing only the needed values to a given subVI.
    - Read the file once at the beginning of execution, and store the values in a functional (LV2) global which is read by each subVI when it is called.
    I think all of these would work, but what would be the most efficient in terms of programming time, execution time, memory usage, and ease of future modification? I'm leaning toward the multiple clusters approach so that I'm not constantly reading a file each time a subVI opens.
    Thanks to all,
    James

    Consider using what I call a "manager" VI. Its purpose is to manage the file for you.
    You call it whever you want to know one of these parameters.
    It knows whether it's read the file yet or not. If not, it does so on first call.
    After that, it simply keeps all your values in its own memory (shift registers).
    When you call it, it simply gives you the value(s) out of its memory, either as a big cluster, or as separated values.
    That way, you only read the file once.
    Steve Bird
    Culverson Software - Elegant software that is a pleasure to use.
    Culverson.com
    Blog for (mostly LabVIEW) programmers: Tips And Tricks

  • What is the best way to organize LabVIEW VIs to be used with TestStand?

    I'm using LabVIEW 8.6 with TestStand 4.1.1 and I'm trying to organize the VIs to later deploy them to a production PC. So, I organized them into a LV project and built a LLB with the "Source Distribution Tool". (Destination type: LLB)
    Some VIs in the LLB use the "Call Library Function" (user32.dll) to simulate keyboard events. But, when any of these VIs is called from TS, LabVIEW is suddenly terminated. When these same VIs are not in the LLB and are called from TS they do not have any problem.
    Is the LLB the best way to organize VIs to be used with TestStand? If so, What could I be doing wrong?
    I appreciate your help.
    H.P.
    Mfg. Test Engineer
    Certified LabVIEW Associate Developer
    Attachments:
    LabVIEW Problem.JPG ‏28 KB

    Hi Ray,
    I really appreciate your intention to help, but I believe I solved the problem already. However I still have some questions.
    The problem was that when I built the LLB the configuration of the "Call Library Function" changed. When the LLB is built it is also created a Support Directory named "data" that contains some dependencies including a new copy of the user32.dll. The "Library name or path" field in the "Call Library Function" changed to be linked to a new Dependency Path. ( ...\data\user32.dll.)
    What I did was select "Specify path on diagram" and create a path-constant ("C:\WINDOWS\system32\user32.dll"), so the "Call Library Function" will be always linked to the original user32.dll.
    I still don't know why the "Call Library Function doesn't work with the user32.dll copy in the New Dependency Path. And I'm not sure if the LLB is the best way to organize VIs to be used with TestStand.
    Do you know why?
    Thank you,
    H.P.
    Mfg. Test Engineer
    Certified LabVIEW Associate Developer

  • Need help in converting old LabVIEW instrument drivers to new version.

    Hello,
    I just rented a Tektronix DG2020A data generator. I did not find any instrument drivers for the DG2020A on the Instrument Driver Network, although there are drivers for DG2040 that could be used to some extent. With the instrument, I also received a floppy with example programs. This does include LabVIEW drivers for the DG2020A. However, when I tried to load the VIs, I received an error message that the VI version 3.1 is too old to be converted to 7.1. Can someone at NI help with the conversion? It would be very useful.
    Thanks.

    There is a driver available for the DG2020 on NI's site. Models supported are the DG2020, DG2030, and DG2040. Available in both 7.x and 8.x.

  • I am looking for LabVIEW instrument drivers for Audioprecision test equipment. It looks like you do not support any Audioprecision intruments?

    I also do not see any support for Keithley 2420 Sourcemeters.

    Hi Kristen,
    If you search www.Keithley.com you will find an instrument driver for the 2420 device. Go to the "downloads" section and search for 2400.
    I am not sure what you mean by Audioprecision instruments. If you had a specific driver in mind, I would check with the instrument manufacturer. Often times they develop and support the drivers since they know the instruments far better.
    If you do not see the driver on their website, please submit a request at http://zone.ni.com/idnet97.nsf/instrumentdriverrequest/ and with the instrument manufacturer.
    We develop drivers based on demand and popularity so the more requests we have for it, the greater the possibility that we will develop one.
    If you would like to try developing your own instrument driv
    er (or modify the existing one), we have documentation, model instrument drivers, and driver templates to help at:
    http://www.ni.com/devzone/idnet/development.htm
    Hope this helps out!
    Best Regards,
    Aaron K.
    Application Engineer
    National Instruments

  • Deploy teststand system Labview instrument drivers

    I'm trying to deploy a teststand application but I have an error with some Labview VI's.
    I'm using some VI's to control an Agilent 34401A, so Labview instruments library that
    is in the default package was used. The error says that Labiew Could no open the following VIs...
    I don't want to install the Labview development system on the target machine, so I don't know
    how to fix this problem.
    I tried to copy the library to a different location an removing the VIs that are not wired (VI Tree.vi),
    but I have the same error. (On the sequence was changed the path to the new VI location).
    Thanks
    Marcos

    Marcos,
     You can execute VIs using the LabVIEW Runtime Engine, but all of the source VIs must be processed to collect their required dependencies and insure they are compiled in the current version of LabVIEW.  The Deployment Utility process VIs from your sequences automatically.  The TestStand Reference Manual has a chapter on deploying TestStand systems that should help you get started.
    -Rick Francis

  • What labview package do I need to develop third party labview instrument drivers?

    We have been asked develop labview 6.1 drivers for a third party data acquisition card. What Labview package do we need to buy, basic, pro etc?

    The only way to really program for a third party data acquisition card in LabVIEW would be through a "call library function node". You would have to call the dll that third party card developer provided. As far as I know all LabVIEW packages contain a "call library function node". I would recomend buying at least the full development environment because of some of the additional features in that package.

  • Lenovo Helix - Clean Install of Windows 8.1 - Best way to load Software and Drivers

    I am considering doing a clean install of the Windows 8.1 operating system on my Lenovo Helix.  What I am wondering is if (After I install the operating system) there is an easy way to get all teh lenovo drivers and software loaded without having to download/install each of them one at a time?
    If not, is there a specific set or order from which they should be installed?
    Is there anything I would lose by doing a clean install of 8.1?
    Thanks....

    davidbecht wrote:
    Sarbin,
    I only have one device issue that has popped up.  My keyboard has begun to work somewhat wonky.  Sometimes if I am in tablet mode then switch to keyboard mode the keyboard doesn't respond.  It will only respond after several reboots/shutdowns.  Is there a good way to make Lenovo System Update reinstall the keyboard drivers?  If you have any advice on fixing this issue that would be great.
    I also thought I was going to lose all teh Lenovo specific apps when I did a clean install.  I didn't.  The only one I don't see is one which was called "Lenovo Experience".  It was nice but if that is all I lost then I am ok with it.
    I love this computer.  Now it feels like new again....
    You're welcome.
    Some things I prefer to install manually, outside of TVSU. BIOS and firmware are good examples. Have a look through the driver listing for the keyboard/dock update and scan the readme. The behavior you're seeing may be part of that fix.
    Looking at one of my Win8 OEM-preload machines, the Lenovo Experience shortcut points at "dxpserver.exe". Maybe that info will help pinpoint if there's an installer for the complete package.
    Hope this helps.
    Regards.
    English Community   Deutsche Community   Comunidad en Español   Русскоязычное Сообщество
    Community Resources: Participation Rules • Images in posts • Search (Advanced) • Private Messaging
    PM requests for individual support are not answered. If a post solves your issue, please mark it so.
    X1C3 Helix X220 X301 X200T T61p T60p Y3P • T520 T420 T510 T400 R400 T61 Y2P Y13
    I am not a Lenovo employee.

  • What is the best way to put LabVIEW DSC data into an Oracle database?

    I have been collecting data using LabVIEW DSC 7.0 for several years and have always accessed the data from the Citadel database via the Historical Data Viewer.  I would now like to begin putting this data into an Oracle database.  My company stores all their data in Oracle and it would provide me all the benefits of their existing infrastructure such as automated backups, data mining tools, etc.
    My initial thought is to use "Read Trace.vi" in LabVIEW to pull historical data from the citadel database at regular intervals (e.g. 1 minute) and insert this data into Oracle via ODBC.  In this way, I do not need to track the value changes in order to know when to write to Oracle.  I also considered replicating the citadel database using some other method, but I recall that the tables used by citadel are somewhat complicated.  I only need a simple table with columns for channel, timestamp, and data.  The "Read Trace.vi" will provide me data in this format.
    I do not need to update the Oracle database in real time, a few minute delay is acceptable. If anyone has a better idea or additional insight please let me know. Thanks.

    In terms of connectivity, you want to use ADO, not ODBC. Beyond that, it all depends on the structure of the data and what you are going to want to do with it. This is a very big question that you need to be getting some in-depth assistance.
    Mike...
    Certified Professional Instructor
    Certified LabVIEW Architect
    LabVIEW Champion
    "... after all, He's not a tame lion..."
    Be thinking ahead and mark your dance card for NI Week 2015 now: TS 6139 - Object Oriented First Steps

  • Best way to install audio, instruments and Logic?

    Hi Can someone please tell me which is best?
    Is it better for me to install Logic studio 8 onto my system drive and my logic songs, audio & virtual instruments onto the audio drive? Or is it best to install LP8 and audio plug-ins onto my audio drive?
    This will be for a Mac Pro not a G5 machine.

    Chance Harper wrote:
    I realized I marked this question as answered but out of curiosity (or just plain stupidity) I would like to ask, why must I put the samples and loops on a third drive? Will this really improve performance?
    It will not so much improve performance, as improve what your disks can handle. If you are working in a project that uses both Soft Samplers and Audio, one disk has to handle two tasks, reading/streaming samples and reading/streaming/recording audio. It differs per disk what it can handle, but you can see the benefits of having them separate. It also increases the lifespan of both disks.
    And also can one use time capsule with an internal drive? (A fourth drive)
    AFAIK, Yes.
    regards, Erik.

  • "I am looking for LabVIEW instrument drivers for a PTS 160 Frequency Synthesizer

    looking for instrument driver for PTS 160 Frequency Synthesizer

    "Unfortunately I was unable to find a driver for this instrument at http://ni.com/idnet. This leaves you with one of a couple options. It may be possible to modify an existing driver to work with this instrument. Otherwise, http://www.ni.com/devzone/idnet/other. htm states a few options to obtaining a driver. NI only writes drivers for standalone instruments in the eight IVI classes(DMMs, Scopes, Function Generators, Switches, Power Supplies, Power Meters, RF Signal Generators, and Spectral analyzers) that communicate via GPIB, Serial, or TCP/IP, so a driver cannot be written for your instrument. It would also be beneficial to notify the instrument manufacturer, they often have drivers for multiple programming languages. If they do not, you may want to hire an
    Alliance Member to write an driver for you.
    Alliance Member Directory
    http://www.ni.com/alliance/ alliance_member.htm"

  • The best way to learn labview to get 32 signals from thermocouples? p.s I`m a beginner

    I have to set the labview program for the fatigue test of the seal by using the thermocouples. I`ve just studied labview for 20days by myself.The test`ll be in high pressure, speed and temp. I am using pci6031e DAQ, BNC-2090, labview 6.02 .
    Could you...? any advice`ll be a great .
    thank you.

    I just wanted to mention. Make sure you use "Convert Thermocouple Reading.vi", which is located in:
    Function palette -> Data Aqcuisition -> Signal Conditioning
    This vi is sometimes overlooked. It can simplify a lot your project.
    Other than that, look at the following page:
    http://www.ni.com/sensors/
    Everything about sensors.
    Best regards;
    Vargas
    www.vartortech.com

  • ISE - Best way to distribute certificates to Mac

    I have a customer that has users with company-issued MacBook Pros.  They want to implement ISE for Wireless 802.1X access control, using EAP-TLS.  The challenge is certificate distribution to the Mac client device.  The customer's preference is to have it as automated as possible - much like with an AD GPO for the Windows machines.
    I've thought of three options:
    Point them to a Self-registration portal and have the device go through an NSP/BYOD process to get the cert on there (seems unnecessarily complex)
    Anyconnect loaded on the Mac to get the cert (is this possible??)
    Manually install the root certificate and then request/install the user certificate (what they want to avoid)
    Which (if any) of those options is most reasonable, or is there a better way?
    thanks in advance,
    Andrew

    Hi Andrew-
    I have done many deployments in the past where customer had MAC and wanted to on-board them with certificates. I have used both ISE and an MDM to perform this function. Currently ISE uses a Java based provisioning which became messy when Apple removed the native Java application. With ISE 1.3 it will be moved to a .dmg based deployment which will make things much easier. However, the whole on-boarding process (outside of java) is pretty slick and user friendly. You can do it via single or dual SSIDs and tie the on-boarding to the users' AD credentials. You will need a SCEP/NDES server.
    The MDM (IMO) makes the deployment even easier and some of the providers out there can now integrate directly with the CA server without the need of SCEP/NDES server.
    Other than that, you can look into "Apple's Configurator" but I have not used it in the past so I am not sure what are its capabilities. I don't believe that the AnyConnect client has any options to auto enroll a certificate. 
    You can have a manual process where the users must go and request the cert, download it, install it along with the trusted root but as you said that is not ideal and should be avoided. 
    Hope this helps!
    Thank you for rating helpful posts!

Maybe you are looking for