Jump to content

Mike Ashe

Members
  • Posts

    1,626
  • Joined

  • Last visited

  • Days Won

    1

Posts posted by Mike Ashe

  1. You might also want to search the Info-LabVIEW list archives for MySQL.

    http://www.searchview.net/

    Various people have shared and traded MySQL code in the past 2-3 years.

    Good Luck.

    PS: As an alternative, you might want to go to the LabVIEW Open Source Tools (L.O.S.T.) at:

    http://www.jeffreytravis.com/lost/labsql.html

    This is written to use ADO and connects with any ODBC compliant database. I know that there is both ODBC and JDBC driver sets for MySQL and your can use MySQL that way. LabSQL is free, open source and works pretty well.

  2. If NI tried to do something to prevent you from selling your product, or told you that it was not "authorized" per the license agreement because it competes with their toolkit, then I think that you would have a legitimate beef. But it is somewhat foolish to expect them to advertise your competing product in their newsletter. Market it as best you can and if it gains a niche, great. If not try to improve either it or your marketing, but don't focus on what NI does or might do or not do. I made that mistake for too long myself.

    You might want to try to write an article explaining hierarchical state machines and use your product as an example, then submit to one of the trade magazines such as Test & Measurement. Good luck.

  3. ...  I already have the external code and dll from the previous efforts but i need to find a way for this to communicate with labview.

    ... LabVIEW includes a utility for automatically converting LabWindows/CVI function panel (.fp) files to LabVIEW instrument drivers. ...

    ...Will this solve the problem 

    ------------------------

    2990[/snapback]

    Hi Ben,

    First, the bad news:

    As Alex said, unless you have CVI you cannot currently make the function panel and the LabVIEW CVI->VI function currently only works with function panels.

    Now the good news:

    I have been working, in my not so spare time, on a utility to do exactly what you are asking for. Take the external information about the DLL and write VIs to access the functions. At least to populate the CALL LIBRARY NODEs automatically, and then to make the front panel controls and indicators. This is a work in progress and is far from ready for prime time.

    However, I need a couple of test cases, and if you could email me the .h file, something that has the function call prototypes in it, I will try to use it as a test case and a spur to get a little more developed

    michael.ashe@imaginatics.net

    This will be an open source tool when it is finished.

    Looking forward to hearing from you.

    Mike

  4. :thumbup: This one has been on my "wanted" list too for years!

    Everyone that had to interface with a dll and manually enter all the datatype knows what a pain in the b...ehind it is :thumbdown: !

    I am really looking forward to see your implementation.

    Why NI did not do such an utility, I really wonder... :blink:

    PJM

    2914[/snapback]

    NI has had this ability for years, so they DID do a utility. You can see it in LabVIEW, under:

    Menu: Tools > Instrumentation > Import CVI Instrument Driver...

    If you point this to a CVI Function Panel file (*.fp) which lists all the functions in the driver, it will then create wrapper LabVIEW VIs for all of the functions, 2, 10 or 100. It was beautiful to watch the first time I saw it work. It did in less than a minute what would have taken me over a week on one driver.

    This function is also available in an invoke node, if you know the way to program the parameters. The function requires a CVI.fp, but it should be trivial (relatively) to reprogram to a text file (*.h, etc...) for the function prototypes.

    The problem with releasing it as a general DLL conversion tool, from NI's perspective, is that you wouldn't have to buy another expensive software tool like CVI, and it would make it too easy for some of NI's hardware competition to quickly produce LabVIEW drivers for their hardware. NI makes good money off software and training (and they deserve it, great products) but they make more (or always did in the past) off of hardware sales. Recall the internal motto: "The software is the sizzle, but the hardware is the steak!"

    Guess its up to us open sourcers...

  5. "illegal" might have been a little too strong.  How about "not advisable, from a legal perspective".  While, something might not explicitly be a criminal offense, you could still get sued for damages.  A DDS attack is aimed at completely shutting down someone's business presence -- that equates to financial damages.

    2920[/snapback]

    Hmmm... if use of the screensaver is intended to drive up someones costs, could not this be construed to equate to "financial damages" and therefore cause salivation in the company's "lawyer on a leash"? Probably not a problem for the rack and file user, but for the original programmers of the screen saver?

  6. I think he is referring to how to do this with Scripting. I don't think there is a way. If you search for the Private_Class_Generator page here on LAVA

    http://forums.lavausergroup.org/index.php?...class_generator

    and run the generator you get refs to all kinds of diagram objects, including the loops. Selecting a while loop ref and constant and wire property and invoke nodes and you don't find a property for setting the color. And this is even with all the super duper secret INI file settings turned on that someone exposed on Info-LabVIEW a little while back.

    I think we are waiting for LV 8.0 or the Scripting Toolkit to be formally released by NI.

  7. Hi everyone

    Attached is a tool that demonstrated how to generated private class controls (and constants).

    It does used the technique described in the following post: Public And Private Classid Names

    Enjoy

    PJM

    709[/snapback]

    Thanks a lot PJM! This has to be the single best and worst thing I've found on LAVA and OpenG combined. Best because of all the goodies it exposes and worst because, like a really great book, it is hard to put away....

    I used this to hack together a little utility that writes the function prototype and parameters to a Call Library Node. The next step is to add a parser for a c/cpp.h file and make a utility that will auto generate wrapper VIs for DLLs, something I have wanted for years. I'll post when I get it finished.

  8. Hi, I have a couple of distributed applications that communicate with TCP/IP. Lots of clients, etc. Development is ongoing.

    Occasionally I find that a client cannot connect into the server and it turns out that the IP address that LabVIEW sees for the local machine has been superceeded by another IP assigned by some other program, like a VPN tunnel.

    Has anyone else experienced this, and if so, does anyone:

    1. Have a method to automatically detect this in LabVIEW?

    2. Have a way to switch the IP that LabVIEW sees, back to the network card?

    3. Have a way to prevent LabVIEW from switching to the new address in the first place.

    Thanks in advance for all replies and code!

  9. Are you returning a "packet XXX recieved" notification. It seems that adding a little bit of info to the buffer you build up (when the connection is down) might workaround your problem. I agree that it would be nice to know why you are loosing the packets, but making your recovery robust seems more important.

    The reason I say robust recovery is more important is that I have seen multiple ways that LabVIEW's TCP/IP comms have problems over the years. Spurious timeout errors (you set the timeout to 2 seconds and the read VI returns in 50 millisec with a TO error) to buffer overflow errors when you try to transmit to fast. I have run into som many types of errors that I assume that there will be multiple error modes with TCP/IP and implement accordingly.

    Best of luck!

  10. Excellent tutorial and example. Perhaps a bit of an Open Source toolkit can be slowly built up around this as time goes by. Not sure what NI's reaction to this might be though. Keep up the good work!

    Hmm, along these lines, it might be useful to have a list of express VIs that people really need or a place in the LAVA site (and/or OpenG) that will start a library of express VIs and VI requests....

  11. Hello

    I think that the right solution for your problem is DDE (Dynamic Data Exchange). With it you can communicate with multiple applications on the same computer.

    ... SNIP ...

    2620[/snapback]

    If you have the source code to the C++ side, so as to make modifications...

    Four other ways would be:

    1. Communicate using TCP/IP, simple enough on the LabVIEW end, (YMMV on the C end).

    2. Compile the LabVIEW side into a DLL and have the C program call the LabVIEW routine as a DLL.

    3. Compile the C/C++ end as a DLL and have LabVIEW call that.

    4. Post Windows Messages to the LabVIEW Window Message Queue. If you search on the LAVA and OpenG.net websites you will find Windows Message Queue LabVIEW VIs so you can have LabVIEW listen for Windows messages, notifying it that the boolean needs to be set.

    Cheers

  12. Hi,

    I'm trying to connect a normal digital camera to labview to get an image and read out information about a position.

    Is it possible to connect the camera from LabVIEW, ...

    2417[/snapback]

    If the "normal digital camera" has a USB output then you can grab images using a couple of freebie (or very low $) VI libraries that people have posted. Here are a couple:

    LabVIEW Webcam Library (free)

    http://www.cs.unc.edu/~parente/labview/

    IVision Package (very inexpensive for what you get)

    http://www.hytekautomation.com/Products/IVision.html

    Enjoy,

  13. Here is another slightly modified version of the listbox tab control modify / panel VIs. I just moved the generation of the references outside to avoid memory leaks and added a slight delay in the read loop to allow other VIs to operate.

    This could continue to be modified to make it more generic (and therefore useful) by:

    1. using a tree control to write the values to (with filter options),

    2. optional timeing on how often to update the value tree,

    3. making a list of VIs running in memory and allowing switching between them

    So many mods, so little time...

    Mike

    Download File:post-45-1096481602.zip

  14. Very cool code!

    PlugIn Control

    Has anyone else noticed that the generated tree contains a lot if items that cannot be found in either the palettes or any of the scripting examples/goodies here at LAVA.

    One in particular intrigues me. under GObject>>Control there is a PlugIn Control listed. I have long wished to be able to add controls at run time as part of a plugin architecture.

    Does anyone know of anything about this object and its use?

  15. I used to have a small utility that showed what the mouse position was and what VI it was in. I used it to make similar VIs have essentially the same front panel layout.

    I think the same effect can be written pretty quickly with George Zou's GToolBox VIs (which are worth several times the toolkit price ~$40.00)(no I'm not affiliated, it's just a good kit).

    I'll see if I can dig up the utility. Its not a ruler, but...

    Also, using George's VIs you can give a VI a "skin". This can be dynamic, so I suppose you might be able to put a ruler skin down, use it, then remove before you saved...

    Mike

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.