Jump to content

ShaunR

Members
  • Posts

    4,937
  • Joined

  • Days Won

    304

Posts posted by ShaunR

  1. I'd put that percentage even heavier on the UI side. I honestly can't quantify the effort I put into writing obscure hierarchies of VIs to deal with the oddities features of the LabVIEW controls in an effort to make the UI behave at least somewhat consistent with anything else the user interacts with elsewhere. For anything other than the basic scalar controls, I find it takes all of a few seconds for a user to realize they're not dealing with a "normal" control. Don't get me going on trees or multi-column list boxes...

    I develop 100% Windows platform locked applications, and I swear, next time my UI is going to be 100% .NET or WPF based controls, except for the graph objects. The graphs I think are the strongest UI components NI has, and even they are showing their age.

    I'm 100% with you here...ESPECIALLY the tree view....frusty.gif. - and my UI are "simple" (or they would/should be...lol). I went through a stage of writing front ends in another language and have only the backend IO and stuff in LV. I didn't find many downsides to this apart from my abhorrence to mixing languages. In fact I might play with it again but using TCPIP as the glue rather than DLL calls. Oooh. Epiphany blink.gif This would mean the UI doesn't even have to be on the same machine biggrin.gif

  2. I bet a large portion of auto-tool haters just have not spent enough time with it. It actually pains me now to watch old-timers (its always peeps with 10+ years experience with LV) using the tab like crazy, and still being way slower than me. Also, as a lefty, tab was never a good option as I would have to take my left hand off the mouse. At the moment my right hand rests on the arrow keys to do very quick node adjustment or ctrl-double click etc.

    Only code monkeys need speed....for all the changes I want them to do biggrin.gif

    About the icon editor, I agree some of the behaviour is a bit unexpected (took me a long time to figure out you cant use the text inputs for the banner text), but it allows me to edit icons so much quicker. If I have an API type icon with standard glyph it takes about 10 seconds to edit the text if I clone the VI for a different API command. With the old editor you would have to paint over the old text, manually position the new text etc etc.

    I too like the new editors purely because you can import icons. It used to take me ages to try and make a new icon pixel-by-pixel...now I just import an image and (sometimes) make a box round it ...much quicker.

    For me the one of the worst "feature" is bloat. The context menu for some operations is nearly as high as my laptop screen! I would really like a low-cal version of LabVIEW, and one that does not install dozens of NI services which I do not use very regularly.

    Amen!

    Data-finder? What's that? Never used it. and If I ever decide to find out what it does I probably never will. NI device Monitor? I don't have any USB devices. NI PXI manager? Don't have a PXI rack., NI Motion Device Manager, NI WebServices.... et al.

    Otherwise it has to be the limited front panel control customisability. Its a pain to do any serious non-standard UI work... The whole UI feels stuck in the mid 90s. System style controls do go a very long way to fixing this problem, but they lead to quite boring UIs.

    This is one of my pet peeves too. Along with the amount of coding that must be done just to make a UI work. Most projects I find nowadays are about 60% UI code and 40% real-stuff. The UI hasn't really changed much since the MAC original (in look and feel). No matter what you do. It always "looks" like LabVIEW. I think we would see many "new" looks if NI gave us access to the controls canvas and "onPaint" event..

  3. I've seen this somewhere a few years back but haven't been able to figure it out recently. I want to change my default free labels to have a light yellow background and a black border. I like that style for comments a lot. I thought this could be done via the LabVIEW options, but It's obviously not there. Then I remember someone created a palette item which you could drop on the diagram to do this. Any ideas?

    This would be a great feature to have built into LabVIEW. But actually a better code commenting tool is sorely needed anyway.

    My version is set as you describe (yellow with a grey border for BD labels, LV 2009 and 10). My problem is that I can't remember how I did it an cannot change it back blink.gif. But it is possible :)

    I'll have a play and see if I stumble across it again :P

  4. Yes, that is correct however, for a normal VIs this is great.

    For a larger dist with libraries and class I found it was much slower.

    The reason being that all code in the directory was handled i.e. open/checked/compiled.

    But due to the above VI relationships this was slow.

    What I did to optimise it was to only point to a VI Tree so one VI gets handled.

    I don't have any benchmarks recorded but it was actually something I wanted to discuss with you.

    I don't know how the JKI install works, but you are right.

    You only need to compile the hierarchy from the top level VI (which is what your VI tree is doing) rather than compile every VI..

    I scan all VI's and see if they have any parents (lone VI's - these will be the top level VIs) then compile "Entire Hierarchy" only for those VIs and just save all the dependants. Opening a reference is quick, but compiling isn't. The advantage of this method is that you don't need a VI Tree VI (so it's more generic) and, for a couple of hundred VI's you only end up compiling a small subset and the compilation process is smart enough that shared VI's that are already compiled and/or saved are skipped (or so it seems)

    It's no really an issue in 2009 because it's all very quick. But 2010 is such a slug (installing SQLite API in 2009 takes about 20 seconds. In 2010 it's about 1 minute i.e 3x slower)

    • Like 1
  5. Hi everyone,

    I was trying to connect labview and Microsoft robotics simulator based on this link : http://decibel.ni.co...t/docs/DOC-9214

    everything goes fine until when i am running the SimluatedNIcholas.vi i am asking for a microsoft.dss.enviroment.dll that i can not find it anywhere. Does anyone have an idea or the same problem sometime?

    Thanks

    I've never used it....but a quick Google revealed that not only you have this (and similar) problems.

    v8kjdw.png

  6. Sorry, I wasn't being smart, I was saying the solution is to skip them (in your script).

    I doubt VIPM can do it, and I hope NI can't do too - as that means there is a security issue with using PP in my VIs (if I choose to) IMHO. I am pretty sure Locked VIs also get skipped during a mass compile in LabVIEW.

    Hmmm.

    I wasn't aware that mass compile skipped anything.It doesn't say anything about skipping in any logs when it comes across a password protected VI. angry.gif

    Thats unfortunate. It means that a password protected VI is no more portable than a VI with the diagram removed. I had always thought of password protecting to be a better solution because having the diagram meant you could re-compile for different platforms/versions.

  7. It is a bit inelegant but I have come up with a solution. I create 10 string controls (more than I think I'll need) and get references to them. I then position each of the ones I need based on the range of the x axis and then hide the ones I don't want. A bit messy but it works fine.

    You could draw your own axis using the 2D picture plot functions (2D picture plot). The downside is you don't get all the zoom candy etc.

  8. I am thinking that if you don't have the password you can only just skip over them.

    Indeed. But not really solution though. I'm hoping I'm just missing something obvious since the mass compile (and presumably the VIPM) can do it, however the mass compile only scans directories, rather than project trees.

  9. How do you re-compile a password protected VI?

    I have a couple of VIs that are password protected, and a little tool that goes through a project, recompiles it and returns any errors and what they are (which then goes into a database)

    The mass compile copes with it no problem and simply compiling from 2009 to 2010 shouldn't be a security problem. But I can't find a way to do it.

    The open VI reference takes a password parameter so I presume you can't get a reference with that. And getting the reference from a project returns error 1040 (password protected) when the compile script node executes. Any ideas?

  10. I added VI wrappers with error terminals for Wait (ms), Wait Until Next ms Multiple, and Tick Count in LV 2011. Look for them in vi.lib\Utility\timing. They're not the ideal solution, but until we get error terminals on the primitives, at least we can stop having to worry about maintaining our own copies.

    -D

    I would suggest replacing them in the palette (like the space constant ;) '). I've been using my ones for over 10 years so it's not really a maintenance issue, I appreciate the thought, but really the primitives need to be changed.

  11. ShaunR, those are serial interface cards. It is not clear to me that they will work for my purpose: The encoder emits quadrature pulses through the serial interface, but I need a COUNTER to read the position, then poll it from the PC. I don't think a simple serial interface card will do this.

    Well. NI also do counter timers. But it is's really a sledge hammer to crack a nut. Whenever I come across devices like I think you are describing, I always use a PIC to convert whatever in to RS485 and have a nice serial ascii value returned (you can even do stuff like streaming to the PC). Cost less than $5 a throw, much more reliable and has a huge saving on cabling in multi-device environments. And once you've done it once, you can use it on virtually any obnoxious interfaces with a bit of software tweaking.

  12. Hello,

    I have an optical position encoder (actually three of them, one for each axis) that transmits electric signals according to RS-422 standard. There are two quadrature channels (A and B) and a reference/stop channel.

    How to read this in LabVIEW?

    There is an expensive NI solution: the NI cFP-QUAD-510 4-Axis, Quadrature Encoder Input Module for Compact FieldPoint. This also requires a chassis and LabVIEW RT, which we don't have. Seems like overkill to me.

    There are third-party multi-axis RS422 counters with, say, an USB interface like this one:

    http://accesio.com/g...usb-ctr-15.html

    Unfortunately this one won't work, because it can't read quadrature signals.

    Actually having an added display would be nice. So what I am looking for is a box which accepts 3 or 4 RS-422 inputs and has a display for the counter and a USB, Ethernet, or serial interface from where I can get my position.

    Any suggestions?

    RS422 is multi-drop and can be cabled for distances up to about 100meters.. You can have all your devices hanging off of one RS422 port (up to 12 or 16 if memory serves). If you can get all your devices with a RS422 interface then you won't need to mix and match with USB. Make sure, however, that the devices are really RS422 compliant. Some manufacturers say that they are 422 when really they are point-to-point but with RS422 line drivers (i.e not addressable).

    I highly recommend the NI RS422/485 cards. for the PC end.

  13. If you Google for

    connection closed by peer

    you will find this is the standard description for this error for lots of programming APIs. For example

    http://technet.micro...y/cc957018.aspx

    This is one of those cases where LV described the behavior using industry standard terms, which is sometimes a "damned if you do, damned if you don't" situation... very helpful for those who know the networking standards and are working in LV, somewhat misleading for LabVIEW programmers working with networking standards.

    If only we had a "ping" function wink.gif

    • Like 2
  14. Hi there ,

    Currently we use Atmel programmer i.e sam-ba v2.9 for downloading the bin file into the microcontroller using USB-JTAG (Jlink ). I require to do the same using Labview .

    The dll is available for the same .

    I registered the dll successfully and using function "Automation open" the methods under it are available .

    But i am unable to use the methods successfully .

    for e.g the method Scan requires input as a pointer to a table where the list of devices are located ,

    the data type of the input is U8 , so if i input a value of 0 , it gives me an error ..

    Can anybody help , how can we pass pointers in Labview

    The example code snippet given for the method in the manual is as given below,

    CHAR *strConnectedDevices[5];

    for (UINT i=0; i<5; i++)

    strConnectedDevices = (CHAR *)malloc(100);

    AT91Boot_Scan((char *)strConnectedDevices);

    Please help .... :frusty:

    Tan

    P.s attaching the library files

    The char * is simply a C string and it's unfortunate you are using an activeX component since you you can pass that to and from a dll with the string type drop down selection in a code library node.

    An array of strings is a different matter since there is only a selector for an array of numeric types and although you can de-reference the pointer; you don't know how long the string is in each element (unless they are fixed length)

    Dereferencing pointefrom C/C++ in LabVIEW is is a fantastic article with execelent examples for many data types. The VI you will need is the Xnode GetValueByPoionter.

    However, Moveblock

×
×
  • Create New...

Important Information

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