LabVIEW Idea Exchange

Community Browser
Top Authors
cancel
Showing results for 
Search instead for 
Did you mean: 
Post an idea

Add a module to LabVIEW to use it on Android OS or Apple iOS. 

 

People have already been getting smartphones for awhile.  And now in 2011, there are so many manufacturers that make tablets with Android OS or even Windows.  Apple iOS is considered to be the cool thing but Android OS is more open and used by more manufacturers (since only Apple for it's iOS).  Since the Andorid Tablet is so new, yes there are more Apple tablets out there than Android tablets but if it's like the smartphone market, Android OS will overtake the iOS market.  It's just a matter of time. 

 

I don't know whether one is easier to code than another, but if you had the time I think a module for both the Android OS and the Apple iOS would be extremely powerful.  Wouldn't it be great if we could run an instrument from our phones or tablets?!?! 

 

But I would just be careful to make sure the module was robust and not too many key features were missing from the full LabVIEW version.  In the past, we tried the PDA Module and Touch Panel Module for an instrument and it didn't work out.  The module was very buggy and missing a lot of features from LabVIEW that we though were important key ones.  We ended up abandoning the PDA module idea and went with an advantech touch panel computer with Windows XP and just kept writing with regular LabVIEW.

This is an excellent feature for populating a new cluster that I use everyday:

 

DragAndDropCluster.png

 

This is a feature that needs to be added:

 

DragAndDropArray.png

 

Stipulation: if several constants are highlighted, and they are the same datatype, then allow them to be dropped into an empty array; else, disallow dropping. This will determine the datatype of the array, and initialize the first n items that you dropped in.

 

IMO, the Diagram Disable Structure causes bugs, because the output tunnels of the Diagram Disable Structure are set to "Use Default if Unwired", and the default values are very often not desireable, as can be seen in the screenshot, below:

 

 

See this blog article, for more details:

 

http://thinkinging.com/2008/05/11/the-diagram-disable-structure-causes-bugs/

Wire : Right Click --> Visbile --> Label  (Its void Now )

 

1.png                                  2.png

 

Solution : It can take the control Name as default label of the wire,  instead of  being Void

 

 

3.png

 

Not sure if this idea is already proposed. 

 

 

Looking at messy diagram from forum posts (not mine!), I often find myself in a situation that I cannot really tell where an "interesting" wire is coming from. Triple-clicking just shows me a spiderweb of wire segments going in all directions.

 

Often, the leftmost wire end is near the data source, but not always. Maybe it would help if we could right-click on a wire and do a "find source" and a halo,(or donut or similar) would temporarily appear showing where the data in the wire is originating.

 

A wire can have many sinks, but only one source and the data source is the most interesting property of a wire.

A tool to find it quickly could be helpful.

 

This picture is way too ugly, but should give some idea.... 😉

 

Ther are 10 pages of suggestions coming up when typing "probe location on wire".

AFAIK, none of them addresses this irritating behavior of probes:

 

Screen Shot 2015-04-24 at 18.07.18.png

 

The probe icon will snap to some algorithmically determined location which might result in illegible data flow during debugging, or might end up in a region of the diagram far from where the critical action takes place.

I know that what matters should be the VALUE of the probe, but WHEN to check the probe value is also critical, and in a visual development environment, this time is determined by monitoring the data flow (among other methods). This is where this uncontrollable probe location can be annoying at times.

 

My suggestion: just as for labels, let the user choose the location of a probe anchor point on a wire (especially when it branches off).

The crux of this idea is a very simple premise:  Structures should not be allowed to hide code inside their diagrams.  Ever.  Period.  There is no legitimate reason.

 

The rest is implementation details which are negotiable, unlike the basic premise.

 

With Autogrow enabled this is not an issue.  So it could be as simple as removing the option to turn it off.  I would prefer a slight alternative, allow autogrow to determine two different behaviors when an object pushes against a structure boundary:  Autogrow = object wins and structure grows.  No Autogrow = structure wins and object no longer moves.  All structure growth is done by hand in that case.

 

NewAutogrow.png

 

When upgrading VIs which have hidden code, I suggest a one-time autogrow.  Breaking code could be an option ( Smiley Wink ), but that would simply force the user to autogrow or cleanup the BD anyway.    If there are other errors, a broken run arrow is not a clear, direct indication anyway.

 

There could be a corollary preventing hidden code in general.  I may not agree with them, but I do see that there could be an argument there to allow hidden code in some cases.  That battle is being waged elsewhere:

 

http://forums.ni.com/t5/LabVIEW-Idea-Exchange/LabVIEW-should-break-VIs-which-have-hidden-code/idi-p/2228268

 

I see no reason, however, to allow the bounds of a structure diagram to shrink beyond the bounds of its content.  Nefarious reasons? yes  Legitimate ones?  not that I can think of.

 

I empathize and support this idea as a start:

http://forums.ni.com/t5/LabVIEW-Idea-Exchange/Visual-indication-that-a-structure-is-hiding-code-beyond-its/idi-p/2242866

 

But I do not want a visual indication, I want to know by construction that nothing lies beneath.

Anchore position of Bundle & Unbundle Ny Name elements to "Input cluster" and not to same point in the middle of element.

 

I don't like when I place (Un)Bundle By Name element to Block Diagram and when I connect Input cluster to same cluster wire then element dance on block diagram.

 

Similar: when you change (Un)Bundle By Name element by clicking a name terminal and selecting a name from the shortcut menu then element is dancing (moving) on block diagram.

 

Every time I have to shift (Un)Bundle By Name on block diagram to original position.


Expected behavior: Anchor (Un)Bundle By Name position to Input cluster part of element.

 

unbundle_by_name2.PNG

Second Unbundle By Name is reference of original position.

 

 

bundle_by_name.PNG

Second Bundle By Name is reference of original position.

Anyone building an executable in LabVIEW probably ran at one point or another into the situation where you exit the app, but the window stays open. So, you do some research and find out that you can call the Quit LabVIEW primitive () or close all the windows in the app to make it really exit. If you add the Quit LV primitive, you then probably encounter this - you test the app in LabVIEW, then when you stop it, LabVIEW suddenly disappears, requiring you to add code which will only call the primitive when you're running as an executable.

 

So, what if LV had an easier way of handling this?

 

Here are some options:

  1. Add another primitive which will only work in EXEs.
  2. Add an input on this primitive which will tell it to only work in EXEs.
  3. Add a VI to the palettes which will wrap this primitive and allow the user to select when it's valid (default - only in EXE). That VI can also have an error input. This is the method I use today (the VI is in user.lib), but it would be better if NI shipped this VI.
  4. AND MUCH BETTER - executables should exit by default when all visible VIs finish running. Thanks Randy.
Message Edited by Support on 04-12-2010 09:26 AM

By default, the mouse scroll wheel scrolls the block diagram or front panel vertically, CTRL+SCROLL scrolls through cases/events/sequences and adding the SHIFT modifer to either accelerates the scroll. In order to scroll horizontally, however, the mouse has to be hovering over the horizontal scrollbar. Because of the predominant left-to-right, top-to-bottom style of diagram organization, it would be excellent to have a more accessible way to scroll horizontally.

 

I haven't found anywhere ALT+SCROLL is used - I think horizontal scrolling is a good candidate to fill that spot.

 

 

Let's say you have a class you are developing and want to reuse it in multiple targets, particularly if you work with RT targets. You want to do most of your troubleshooting and development on the PC (assuming that the class has nothing hardware-specific) and when it works well you plan to do some final testing in the actual RT target.

 

So, you create your test project, with the PC target (with the class and the tester VI). Now you add the RT target and reuse all the VIs and the class. BAM! LabVIEW locks the class and you can't make any more changes until you delete one of the targets of your project. You can't even create two projects (one for the PC another for the RT), because the class will be locked.

 

NI has an "explanation" here http://digital.ni.com/public.nsf/allkb/219A8BB7FD8EF0D9862571840053A5E9 but I find it lame, because a similar situation described in the article happens when modifying typedefs (some VIs get temporarily "broken" until you Apply Changes in the typedef editor).

 

Please do not lock classes or at least have a button/command to unlock one of them.

I have seen some ideas relating to Replacing VIs, but I haven't found this exact one...

 

When I think of replacing, I think of the top use cases. One of the ideas I saw related to the class of a VI, that's a common use case. Other Ideas related to performing repeated replaces. That's another common one. And another common use case is replacing with a VI from the project that is not on the template.

 

My idea is to group all of the common use cases on the top-level flyout. IMO, Select a VI... should be the #1 item, then come the palettes and Class VIs (not pictured) and finally a list of the last N VIs that were selected for replacement.

 

I think that this would make a lot of our lives easier.

 

 

NOW:

Bad.jpg

 

BETTER:

Good.jpg

Maybe I have just created bad habits, but often times I copy a control on a BD that is the datatype I want. Then I go to some other VI and open the front panel and try to paste it, but I can't. I would like to be able to copy a control or indicator from the BD but paste it to another VIs FP. The reason I want this is because if I have to paste to the BD because I copied fromt the BD, sometimes it puts the control in la-la land away from all my other controls or indicators on the FP. If I could just paste directly to the fp, I could put it where I want.

 

Could I double click the control to find it then copy from the front panel? Yes, and maybe I should have made this a habit. But because I have not this lack of functionality sometimes annoys me  Smiley Sad

 

 

 

 

Download All

After installing a few word processing and graphics editing programs, my font list in LabVIEW is about 6 screens long and all I see without scrolling are some really useless fonts.

 

 

To select the ones I typically use (tahoma, courier, etc.). I need to scroll many pages, keeping a close watch on the alphabetically sorted names flying by when scrolling). Of course I could spend a day cleaning out my fonts, but I am never sure if something actually uses one of these.

 

Like most other applications, LabVIEW should maintain a short list on top, containing favorite fonts. This list could be auto-populated by the fonts used on the current front panel or just be a short history of recently selected fonts. There should also be a configuration option, allowing us to "pin" certain really-really favorite fonts to that area.

 

It could look as follows:

 

 

Of course what we really need is a modern text toolbar, but this idea would apply there equally. 😄

Download All

It would be nice if I could select many controls, indicator references, etc... And right click and have it add to a build array. It would automatically add the correct number of array connections and wire the selected control neatly and automatically. This would save a lot of time. This could be done for a lot of things.

 

19315i60939DE58AC3B889

Then select attach to build array to get:

 

19317iDC47DB148E66DDCA

 NativeLoopWait.png
If unwired it would default to 0, and at least let thread switching occur.  You could maybe right click on the loop and remove the wait node to make it run as fast as possible (like it is now), but it should be there by default...  Maybe also right-click on it and get to choose between "Wait (ms)" and "Wait until Next ma Multiple"?
  
(PS: I know that you can do this using timed loops, but I'd like to see it in all of them - I've seen too many "programmers" complain that their CPU is at 100% because their loops are going nuts).

Hi, I do a lot of UI work with LabVIEW, and I'm finding over and over that when you have an array of clusters, the appearance is still to "fat".

 

I'd like to see a very thin border for Arrays and Clusters.

 

If you look at the "Simple String" control, this is exactly what I mean. It's a single pixel border.

 

Maybe like this:

 ThinCluster.png

 

 

Three graphs contain the word "waveform":

 

  • Waveform Chart
  • Waveform Graph
  • Digital Waveform Graph

 

(... and equivalent graphs in the classic and silver palettes ;))

 

This is misleading because these don't just work with waveforms, but with a rich selection of other datatypes. Then the word "waveform" is very long and the default label invariably gets in the way of structure borders and other code elements.

 

I suggest to drop the word "waveform" from all graph types that contain it. Now we simply end up with the following labels:

 

  • Chart
  • Graph
  • Digital Graph

 (... and equivalent changes in the silver palette.)

 

Ahh, so much more concise and compact!!! I feel better already!

 

Idea Summary: Drop the word "waveform" from the default label of all graph types that contain it.

 

Thanks for your support!

reference case structure.jpg

 

 

I have pondered this and not sure it is possible but it would be nice to allow using case structures to work with vi server references.  It is very tedious to test each type with a cast to more specific and the for each type and check for error (current method or itterating through the class hierarchy).

I know that subclasses pose an issue, I would like to see for the case structure to limit each case to select the highest level (ie g object) and the distince cases are error or any direct class child of the specified parent type class.

 

The Use case I see is for handling itterating through controls from an array of controls (if the control is a boolean do something different than if the reference is to a string control).

Could be very nice for scripting.

 

 

 

 

 

There are lots of Ideas on the connector pane layout, tip strips etc. This is perhaps a variant of some of those, but it seems to me to be a very simple one.

 

When I click on the connector pane, the control or indicator that it links to is highlighted, allowing me to find it on the front panel easily.

When I click on a control.... hmmm, now where is it on the connector pane?

 

Why not shade in the corresponding connector on the pane when a control/indicator is clicked?

This would save tedious mouse work to investigate connector wiring - particularly when inheriting code from someone else.

 

18913i31407E55960D2BA0