LabVIEW Idea Exchange

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

When working with Arrays via VI Server (similar to a previous idea) it's challenging to get at a single element of the array.

 

My workaround involves setting only one array cell visible and then changing the index to move to different elements....

 

Why can't we read / write the current active index of the array via Property node?

 

Shane.

This could be in addition to the existing Express VI called Elapsed Time. This function or VI is simplified: without all the String outputs, and not an Express VI. Smiley Happy

 

 

 23546i5DF46C9212B20D7D

LLBs always had the capability of marking a VI as toplevel.

 

I wonder if it would be possible to set a flag inside a VI so a VI is recognized as such from within e.g. windows explorer. (e.g. different default icon). Since this requires OS integrations, I don't know if this is even feasible.

 

Still, It should at least integrate with the LabVIEW project.

 

The default settings could be very simple:

  • A VI without any defined connectors in the connector pane is "toplevel".
  • If there is at least one defined connector, the toplevel designation is lost.
  • There should be a way to overwrite this in VI properties.

 

Many times, people attach a zip full of VIs without telling us the name of the toplevel VI, so this idea would limit the number of candidates to inspect.

The Registry Settings within the Build Spec from an installer is using fixed values only.

 

It would be nice to have somthing like varaibles that contain the information that are entered on the page
"Productinformation" in the settings window from the installer.

 

Productname -> %productname

Productversion -> %productversion

User selected Path for installation -> %installdir

 

This would allow something like this:

 

22863iA75EB0F1A77A1685

 

The values {%productversion} etc. will be replaced during the setup with the real values. The %installdir contain

the selected installation dir from the user.

 

I'm not sure how LV populates the tree under Options -> Menu Shortcuts, but I've been longing now for to long te be able to have some SCC actions (most important checkin/checkout) under a shortcut key. Same for several add-ons in that settle under the Tools menu, a couple of them I would like to have accessable via a shortcut key.

 

So the idea is simply to make everything in the menu available for configuring a shortcut for it.

The raw-image sent to the display (external window or front-panel display element) is not necessarily the one that is displayed. Most popular example is the function "16Bit display mapping" for I16 grey-scale images that converts the image values in different ways before it is shown to the user. What I'm highly interested in, is a possibility to get a programmatic access to the converted and displayed image data (in this case 8 Bit grayscale or 24Bit RGB).

 

See the image what kind of solution / extension I'm thinking about:

WYSIWYG-Image

LabVIEW AF is a fantastic tool to create multi-threaded messaging applications the right way. It promotes best practices and help write big yet scalable applications. 

I feel however that there is not enough included in the box 🙂 When looking at many other industry implementation of the actor model e.g. Scala Akka, Erlang, Elixir, microservices in many languages etc. you find that the frameworks usually include many more features. https://getakka.net/

 

I understand the decisions behind the design for AF yet would like to start a discussion about some of these.

I would like to see the following features being included into AF:
1. Ability to Get Actor Enqueuer by Path through hierarchy of actors e.g. /root/pactor/chactor could be used to get the enqueuer to chactor. This would probably require actors to have unique paths pointing to them. Having a system manager keeping all enqueuers on local system is not a bad thing. It is a good thing.

2. Ability to seamlessly communicate over the network and create your own queue specifications. For example actors should be able to talk between physical systems. Using the Network Actor is not a good solution, because it is simply to verbose and difficult to understand. The philosophy of AKKA should be embraced here "This effort has been undertaken to ensure that all functions are available equally when running within a single process or on a cluster of hundreds of machines. The key for enabling this is to go from remote to local by way of optimization instead of trying to go from local to remote by way of generalization. See this classic paper for a detailed discussion on why the second approach is bound to fail."

3. Improved debugging features like MGI Monitored Actor being inbuilt. https://www.mooregoodideas.com/actor-framework/monitored-actor/monitored-actor-2-0/

4. Included Subscriber Publisher communication scheme as a standard way for communicating outside the tree hierarchy. https://forums.ni.com/t5/Actor-Framework-Documents/Event-Source-Actor-Package/ta-p/3538542?profile.language=en&fbclid=IwAR3ajPR1lvFDyPFP_aRqFZzxR4FCQXh2nB2z0LYmPRQlnvXnsC_GQaWuZQk

5. Certain templates, standard actors, HALs, MALs should be part of the framework e.g. TDMS Logger Actor, DAQmx Actor. Right now the framework feels naked when you start with it, and substantial effort is required to prepare it for real application development. The fact that standard solutions would not be perfect for everyone should not prevent us from providing them, because still 80% of programmers will benefit.

6. Interface based messaging. The need to create messages for all communication is a major decrease in productivity and speed of actor programming. It also decreases readability. It is a better with the BD Preview in Choose Implementation Dialog in LV19, but still 🙂

7. This is more of an object orientation thing rather than actor thing but would have huge implications for actor core VI, or Receive Message VI. Please add pattern matching into OO LV. It could look like a case structure adapting to a class hierarchy on case selector and doing the type casting to the specific class inside the case structure. You could have dynamic, class based behavior without creating dynamic dispatch VIs, and you would still keep everything type safe. https://docs.scala-lang.org/tour/pattern-matching.html

 

The natural way for programming languages to evolve is to take ideas from the community and build them into the language. This needs to also become the LabVIEW way. I saw a demo of features of LV20 and I am really happy to see that many new features were inspired by the community. Lets take some ideas about actor and add them in.

 

I wanted to share my view on the direction I think AF should go. I see in it the potential to become the standard way to do big applications, but for that we need to minimize the barrier to entry.

I would like to be able to collapse code so that it looks like a sub vi but is part of the main vi as if it was not represented as a icon. Double click to edit it like a vi. Options to convert it to a real vi. This would be useful for glue logic, being able to build and share more complex functions without a lot of subvi's. Decrease cross linking of VI's and naming problems. Attibute nodes and locals could be used inside ot them without passing a reference. Would make source code control simpler.

This is for the Idea Exchange, so I wasn't sure where to put it. It sometimes takes a while to notice duplicate ideas and when we do everyone that Kudoed the duplicate has to go back and Kudo the original. In the spirit of "No Kudo Left Behind", can we just update the system to do that for us?

Some more details on the Context Help and Detailed Help. Could there be a possibility to add some more information regarding the Invoke Method: Clean up Diagram. The information right now is kinda confusing. 

 

EstebanF_0-1644007831872.pngEstebanF_1-1644007886978.png

Hope this could help us to improve our platforms. 

Not just via Datasocket. All of them, property nodes, programmatic creation, controls bound to, etc.

Selection_002.png

Screenshot from 2017-12-11 16_52_41.png

Is there some intrinsic reason why SVE is possible only on Windows, like (I read) is said for OPC?

TestStand allows you to jump around sequences while paused, LabVIEW should allow you to do the same.  While paused in Highlight Execution in LabVIEW, when you right-click on a subVI, it should allow you to skip to this portion of the code, and when resumed, it will execute that code next.

 

HighlightExecutionJump.png

When selecting an icon to use for an executable, labVIEW requires it to be in .ico format. There are converters online but some users may not have internet access, labVIEW should do this conversion automatically when the file uploaded is not in .ico format.

The FlatSequence structure was not classified as a MultiFrameStructure but was put in a class of its own. This causes the creation of "exception code" that would not be necessary if the FlatSequence was a MultiFrameStructure and could be processed with generic code. Issue was discussed here, it was decided that the investment to fix this was to high. I believe that the longer NI waits to fix it the higher the cost will be and the higher the cost associated with treating the exceptions cases will have become. I also believe that someday this will actually prevent NI to create more efficient code, i know it has prevented me to do so.

Right now if you want to acquire from multiple cameras and then stitch these images together in an aggregate image for processing you must allocate individual buffers for each frame grabber and buffers for the aggregate.  In addition, you must perform N image copies where N represents the number of frame grabbers in your system.  This is just dead overhead.


What I propose is to change the driver so that each frame grabber can point to a portion of a larger aggregate image.  Then as each image comes in the aggregate image is populated directly.  This save N memory copies and N x M image buffers (where M is the number of buffers in a ring acquisition).  This would be a tremendous performance improvement.  The figure below shows the idea.

 

Smart Acquisition

The latest release of the Vision toolkit (Vision 2012 SP1) provides some much needed improvements to the AVI functions.

 

But at the same time, it introduced a new issue:

 

"The Quality input in the IMAQ AVI2 Create VI is only implemented for Windows
codecs. The Quality input is not implemented for codecs installed with the
Vision Development Module."

 

This is very unfortunate, because it worked fine in the previous release (see here)!  This means you may want to reconsider upgrading to SP1!

 

My idea:  Fix this!  Re-allow the use of the quality parameter in the AVI functions so we can better compress our video!

Windows 7 Snap is a killer feature I really enjoy. One problem: when snapping LabVIEW Project windows, you get a wacky-huge project, whereas I would like a nice, thin project along the side of the screen. The width of the snapped project could become an environment setting.

 

Intiating the snap: 

Win7SnapInitiate'.png

 

Current wacky-huge project:

Win7SnapBig.png

 

Proposed LabVIEW Project Snap Size:

Win7SnapThin.png

I thought at one point I saw an idea similar to this but I can't find it. I would like to be able to set window appearances different for the development environment versus when running as an exe. I get tired of setting all my windows to dialogs, then I realize I overlooked something which freezes my program, but I can't abort because there is no way to get out of the modal dialog I have opened. I then have to exit LabVIEW. Then I have to go change that window to non-modal, add the menu bar, etc while I debug, then remember to change it back before building the exe again.

 

I propose being able to have a run-time and development environment window appearance options independent of each other to avoid scenarios like this.

6e3fb8943920.png
Message Edited by Laura F. on 06-07-2010 02:03 PM