LabVIEW Idea Exchange

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

The "Rearrange Pages..." feature only allows the user to select 1 page to move at a time.  When groups of pages are already organized properly, it would be nice to move that group together.

 

tabcontrol.jpg

It would be nice if we had the option to terminate a TCP Read on a single character rather than only a CR/LF. There are many times where you would terminate a read on some end character such as a 0x03 (ETX). In order to accomplish this now we need to have a tight loop which reads from the connection a single byte at a time. Even better would be if we could specify a string as the termination sequence. However, I would be happy with a single character option.

When you are generating data from a source and sending it across a TCP connection, it would be useful to be able to get information about when packets are being dropped and resent in the connection. If lots of drops are being detected, a program might be able to slow down the data acquisition or take other action to reduce the amount of information being transmitted to account for the lower bandwidth connection. Currently there is no way to get this information from the TCP primitives.

 

This idea comes out of the Certified LabVIEW Architect Summit held yesterday and today at NI headquarters in Austin, TX.

 

Queues and notifiers can be obtained by reference or by name. This idea simply adds this capability to user events.

 

The following is just for illustration and there may be a better way to do this.

 

Named Events.png

Folks,

 

I think it would be nice if the following were true:

  • Drag a control or indicator's terminal into an event structure while holding down Shift, Alt, or some other key.
  • The "Edit Events" dialog subsequently opens with that front panel object already selected as an event source.

This would save the developer from having to navigate through the event sources tree every time s/he wishes to add an event for a control.

 

Was something similar already suggested?

 

Thanks very much,

 

Jim

In Windows it is standard in almost all application to repeat the last action by using the F4 or Ctrl-Y to repeat the last action.  A simple thing like align left requires going through the menus every time.  Very annoying and not efficient.  Consider adding this useful keyboard action to the next version of LabVIEW.  If you drop down an add function then pressing F4 would drop down an additional add function.  Of course, Ctrl Z would undo the action.

 

Example from MS Word

 

F4repeat.JPG

We have a Round towards -Infinity  (3.8 becomes 3,  -3.8 becomes -4)

We have a Round towards +Infinity (3.2 becomes 4, -3.2 becomes 3)

We have a Round to Nearest (Rounds up or down to nearest integer, if 0.5, banker's rounding to even integer)

 

Why is there no Round towards Zero?  Basically a truncate.  (3.2 becomes 3, -3.2 becomes -3)

I have a use for that right now, but it takes several primitives to work. 

 

As a corollary, a Round Away from Zero.  (3.2 becomes 4, -3.2 becomes -4)

 

 

Message Edited by Ravens Fan on 01-19-2010 04:53 PM

At the moment the only way (I know) to fill a picture ring with pictures is to copy a picture item to clipboard and paste it into the ring. There is no way to programmatically fill the picture ring and afaik this is not planned to be implemented because the ring has to be recompiled and so there is no way at runtime (maybe with scripting?).

 

To simplify this I'm thinking of a way to convert a picture ring into an array of "2D Picture" items and back. Maybe over right click the ring and select "Convert to picture array" and then same way back by right clicking the picture array and selecting "Convert to picture ring".

 

The picture array can be filled and handled programmatically and with some programming you can create a simple manager to insert, swap, edit and ... your images, show them in a picture array, copy the picture array data in run-time, paste in frontpanel in edit mode and "Convert to picture ring". Done, easy and simple.

I have searched the forum but cannot find this particular issue - only the adaptive nature of the dropped constant.

 

When an Integer Numeric Constant is dropped onto the block diagram the value '0' is highlighted ready to accept a typed value.  When you do the same thing with a DBL Numeric constant you have to double click it to highlight it before you can enter a value.  This behaviour is inconsistent the Integer being preferred.

 

Ken

Create an XY Graph and feed it a time stamped XY plot with some hundred thousand points...and you have yourself a very sluggish and possibly crash-ready application. The regular graph can take a bit more data, but still has its limits. Having 100k number of points to display is quite common (in my case it's most often months of 1 second data).

 

The idea could be formulated to just "improve how graphs handle large data sets"...but how that would be done depends a bit on what optimizations the graph code is open for. The most effective solution however would probably be to do what you currently have to write yourself - a surrounding decimation logic.

 

So my suggestion is to add an in-built decimation feature, where you can choose to have it automatically operated when needed - or when you say it is needed, and possibly with a few different ways to do the decimation (Min-Max/ Nth point etc.). The automatics should be on by default - making the problem virtually invisible for the novice user.

 

A big advantage of doing it within the graph is that it will (should) integrate fully with the other features of the graph - like zooming, cursors etc.

Hi,

 

my suggestion is to make it optional within the eventstructure to execute code on each event, before the event specific code will be executed, like follows:

Eventstructure_raw.JPG

Please see the following example for a better understanding of my suggestion:

Eventstructure_code_example.JPG

This option would make it possible to execute common code which is needed on every or almost every event, or to execute common code e.g. on any userevent. A filter option would be neede here to be able to filter events on which the common code should not be executed, e.g. to only use this option on userevents.

 

With best regards

 

AP

I would like a click event (Mouse down followed by Mouse up) in addition to the separate mouse down and mouse up.  You can fire a mouse up event without having mouse downed inside a control.  Likewise, you can fire a mouse down event by clicking and dragging and releasing outside of the event.  There have been numerous occasions where I want a click event rather than individual down and up events.

Sometimes I have several parallel array wires and I want to probe one of them with a graph probe. During debugging, I notice that I actually want to probe one of the other wires instead.

 

Current procedure:

Create an new probe on the other wire. If we do that many times, we will have so many probes as to make it difficult to keep track of them all.

-or-

Create a new probe on the other wire and delete the old probe. Several steps.

 

Wouldn't it be nice if we could Control-click on a probe number on the diagram, get the switcheroo cursor, and then click on a different wire of the same type to move the probe over. It would work very similar to how we currently are able to swap terminals on the connector.

 

Summary: Allow switcheroo on probes 😄

The proposal consists in allowing to visualize more information in a project about the elements it contains.

 

Image21.png

 

For example: VI Description, Type, Application Instance, VI Path, …

 

Image11.png

 

Regards.

Like some other ideas here and here, I find the connector pane right-click context menu to be a burden. I would like to see some of the menu items moved or rearranged.

 

For example, I’ve been using LabVIEW a few years, but the first time I tried many of the shortcut menu items was today. If I were looking for them, I would probably expect to look under "Patterns".

Picture1.png

Additionally, if I click a little to the right, three more of the menu options are already available in a much shorter context menu, so I don't feel like they are needed from the connector pane. (Personally, I rarely perform these actions through the icon, anyway, but I’m sure some people do.)

Picture2.png

 

I propose removing the top few items and putting the others in the patterns sub-menu.

Something like this:

Picture3.png

Picture4.png

Or, if combining the text and patterns creates a UI programming issue, I think it would be acceptable to leave "Patterns" and add a new sub-menu:

Picture5.png

Picture6.png

 

Thank you for considering this idea!

-joeorbob

Since the Error Ring constant is read from  *--errors.txt files at LV startup and then ignored it is cubersome to add new error codes "while coding", you have to restart LV to get a refresh.

Please give us an option to re-read the contents of the errors.txt files from within LV, maybe from within the Error Ring popup dialog.

/LeifS

Hi all,

 

After some issues spending 1 week to get HTTP embedded server working in LV for a single application, I have some remarks that might trigger some need to a more flexible, simple and open HTTP configuration. The current implementation of a HTTP server is quite limited and outdated to my opinion.

First thing is the NI Web Server. This is a nice feature, however, NI recommends using it rather then the outdated Application Web Server but the problem is that this thing is only a single server running on a single port (for every application executable). Good enough for a single web server on a host using a web browser but how about implementing a LV HTTP server for each application (e.g. RPC server)? To my knowledge, every other programming language (e.g. Python, C++, ...) has a core implementation for this.

I have spent a lot of time to see what the best solution is for implementing a HTTP server belonging to a single application executable in LV. This executable is typically a application GUI or a backend service in our projects and we have a lot of them. Every application needs its own RPC server (running on a different port) and hence running its own RPC methods and I ended up implementing a Web Service using a LV Application Web Server, I can't see other ways at this moment using core LV functionality without the need for additional packages to install.

I also miss the enabling and disabling of the HTTP server during runtime. As in our project applications, we also have other transport layers for implementing RPC, such as zeroMQ (thanks to Martijn Jasperse's library on VIPM) and TCP (native built-in to LV). I would like to run only one of these transport services by configuration but here is a second problem here, once the application is running, the HTTP Web Service automatically registers and there is no controlled way for disabling it during runtime, which gives me headaches since I have to change the port number as another transport layer cannot use the same port as the HTTP server. One might say to built another application (actor based) exe and implement the Web Service from there in a different actor but this is a pain in the *** to have 2 exe's for each single application. Why can't the HTTP Web Service not switched OFF and ON again, both in development and runtime? I found a property node to disable the server but it apparently doesn't work (seems related to the native panel web server).

One of the major disadvantages that I also encountered is the HTTP methods that are programmed in a single VI and there is no way to pass data to these method VI's (like using actor framework or even classes in general). It seems we have to use FGV's (Functional Global Variables) to share data between my main application actor and these HTTP method VI's itself. Even then, the HTTP Service Request refnum is only valid in the HTTP method VI itself, once it finished executing, the refnum is flushed and not valid anymore, so no way to pass this refnum using actor framework messages to my application actors. That's quite frustrating since I have to use notifiers within the HTTP method VI's instead as a plan B backup solution signifying that the method VI can proceed and finish its execution once it Wait on Notifier function is complete (since I want to send an answer from my application actors, not from the HTTP method itself)!

Another issue I observed is that I can't "Start" the HTTP Web Service from the right-click menu in the project explorer, it simply crashes with some dubious error that the 'system is currently in an invalid state for the current message'. What does this mean, no clue from NI help docs?

 

Arrowin_0-1715670098941.png

 

I can only right-click and select "Start (Debug Server)" to make it work (but on the debug port 8001 by default). All other options just fail, the same for "Publish", it simply doesn't work in my LV2020 SP1 (32-bit) version and I have no clue why as there is not a single error message at all!

Also, why must we use MS Silverlight to control application webservers from LV? Silverlight is deprecated and I ended up using MS Edge in "Internet Explorer" mode to get the config page working (after spending another two hours to find out). Even then, some config panes just show up with error dialogs and no way to see active services being registered by the application HTTP web server. In the end I just used TCP View to see active services running. It is always frustrating to use third party apps to do simple things.

 

As you might notice from this message, I suffered a lot of days to figure out how to implement HTTP in a simple decent way using LV's core HTTP functionality. I wonder if this will be better using LV 2024 Q1?
If anyone has ideas on how to properly configure multiple application HTTP servers for each application on different ports while controlling itself, please share it with me. I am open to any idea's and wonder if there are other solutions for HTTP implementation (not using 3rd party packages). To my opinion, HTTP should be easy and open to configure properly in LV without a lot of current non-working Web Server issues.
Please note that I tried to reinstall the NI Web Server and other web service related stuff using NI package manager but no avail.

 

Best Regards,

Davy Anthonissen

When you get a data changed event from an array, it would be nice if that event included an array of what items in the array actually changed.  This makes it easier for the user to determine what changed and how to deal with it.

When LabVIEW 2009 starts, first appears a splash screen with a serial number. Almost the same screen is an About LabVIEW window.

Everyone can see private, protected SERIAL NUMBER: VIsitors during the presentation, students during LabVIEW studying, etc.

 17029i1C9133421731EA4F

Problem can be solved:

1) Activate LabVIEW with a correct serial

2) Enter fake serial, try to activate again.

3) Enjoy fake serial on the screen, activated LabVIEW.

Dark side of the solution:

1) Nobody can't see his real serial number, even when really needs it

2) A bit errr... clumsy

 

Proposed modification:

LabVIEW serial should be only inside License Manager, on the splash screen - only information: Activated, evaluation, etc.

No Dark side: License Manager can be hidden using Windows user restricting policies.

 

Forum topic here: http://forums.ni.com/t5/LabVIEW/Hide-serial-number-from-LabVIEW-startup-screen/td-p/1150052

Thanks altenbach and others for solution and idea refinement.

 

Alexander

 

PS Alike idea "Hide LabVIEW SN from box": http://forums.ni.com/t5/LabVIEW-Idea-Exchange/Stop-Putting-The-SERIAL-NUMBER-right-on-the-BOX/idi-p/1146383

 

the input value of the conditional terminal should  " pass through "

 

                  (like the "case selector" of the "Case Structure")

 

 

                    xxxxx.png

 

                                                         like this,

 

                    yyyyyy.png