LabWindows/CVI Idea Exchange

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

Hello,

 

I miss an event that is fired whenever an axis, set to autoscale, changes its minimum/maximum values.

 

Imagine the following scenario: On a xy graph, I have several plots and also some 'regions of interest' that are visualized either by lines or rectangles. Now, if a new plot is added that results in a different axis scale, I also need to redraw my regions of interest. At present, this requires bookkeeping of xmin, xmax, ymin, ymax and comparing the current axes ranges with the previous ones. It appears to be simpler if one could rely on a suitable event that is fired whenever the axis range is changed.

 

Thanks Smiley Wink

 

Make sure ALL the function panels use the right controls 

For example in the CVIDynamicMemoryInfo function panel below, the "Options" parameter should not use the String Ctrl.

Instead it would be "safer" to use a list box, a ring or whatever make sense to display the two available choices :  DYNAMIC_MEMORY_SHOW_ALLOCATED_MEMORY or DYNAMIC_MEMORY_SHOW_ALLOCATED_MEMORY_SUMMARY


This would help to reduce the typo errors etc.

Regards, 40tude


fp.png

It would be convienent at times to have a way to know if timer callbacks had been suspended by another part of the program by 

SuspendTimerCallbacks(), or if timers are running again from ResumeTimerCallbacks().  As far as I can tell there is currently no way to know this in CVI without manually keeping track of the last suspend/resume function called.  Thanks.

Hello,

 

I see no easy way to plot data in a scatter plot including their error bars...

 

Hence I suggest adding plot types such as

 

  • VAL_SCATTER_ERROR_BAR
  • VAL_SCATTER_HORIZONTAL_ERROR_BAR
  • VAL_SCATTER_BIDIRECTIONAL_ERROR_BAR
  • VAL_SCATTER_ASYMMETRIC_ERROR_BAR
  • VAL_SCATTER_ASYMMETRIC_HORIZONTAL_ERROR_BAR
  • VAL_SCATTER_ASYMMETRIC_BIDIRECTIONAL_ERROR_BAR

If this desire gets accomplished, it would also make sense to add some related attributes, specifying the size, type, and color of the error bar.

 

 

I woudl like to have a library for accessing any generic USB HID device.  The library would include functions to query the list of HID's, functions to communicate with a HID, callbacks for when any HID device is connected or removed, etc.

It appears that the placement of the On / Off text of the vertical binary switch is fixed. All that can be changed is the location of the label... It would be nice to have the alternative of placing the On/Off text to the left of the switch

 

switch.jpg

One thing, I'm comming accross with very often is, that the drawing updates of Table controls are very slowly, Sometimes, they bring the system to hanging, whithout increasing the processor load, and User Interface events (e.g. Commit events) are not recognized quick enough (up to 30 s delay, depends also on other events, e.g. Timer, HW events etc.).

 

On most of my projects, I was changing the Table controls to Tree controls, which are much more quicker in drawing updates. But sometimes, I need the Table features (e.g. Ring cells, picture cells etc.), so I'm not able to change the Table into a Tree.

 

According my expierience, Table controls should be updated every 2 s and Tree controls are able to be updated every 200 ms or faster without waiting for User Interface Events.

 

You should make Table controls nearly as quick as Tree controls...

 

Thanks

It would be great to add the possibility to include documentation for (especially global) variables and data structures to the HTML documentation. Currently only functions could be documented. And it would make no sense to duplicate information about data structures used as parameters in each function which is using it.

 

It would further make sense to structure the HTML documentation at least by the module (.C file) it is defined in, together with the variables and data structures. Such you would get a tree like HTML doc with the modules as 'chapters', then sections for data structures, variables and functions. At the moment I get one big HTML index with documentation from all functions within the project sorted by name (I have not been able to find out how to get another structure in the 'functional index').

 

In best case there should be a chance to group 'public' data structures, variables and functions independent of 'private' ones to clearly identify the ones which are the intended interface functions and which are module internal helping functions. One way to automatically distinguish between this types might be using all functions documented in .H files as public and documentation from within .C files as private.

 

Best regards,

  Roland Exler

I apologize if this has already been addressed but this was determined as a issue years ago and forced us to implement a workaround.

 

We use PloXY for large data sets (up to 16 MB has become pretty standard lately). To address lag years ago, we pared the data to be viewed to 4000 data points in background code and send that to PlotXY. However, when the user zooms - which is always, you must then go back to the original data to find the new best 4K data points prior to plotting the new data. The code usually works well but there are instances where it can shutdown unexpectedly - not often enough to fight through friutfully though.

 

As for an truly automated perhaps a more logical course of action is to retrieve the panel size and use that for the data sizing. Regardless, it would be nice to use the CVI built in function and then subsequent zooming etc could be possible via standard functions.

My 2000 dollar worth, run of the mill desktop PC has 4 teraflop of brute computation power hiding in 4 GPUs. None of which is accessible for my programs I develop in Labwindows.

Shame!

With the release of the new OpenCL it is possible to generate a "platform independent" GPU computing library. That would place Labwindows on the same or better footing than Labview that already has some GPU computing support.

The advantages are obvious: huge gain in data processing speed, real-time application with streaming data,  pattern-recognition (video) applications, image processing, data-parallel tasks in (technical) modeling arena.

I am playing with some optimization algorithms (genetic algorithms, evolutionary algorithms) that benefit and show amazing gains since they are ideal for data-parallel applications! Currently working on the specs for a new type of controller that would optimize several parameters to figure out the state of the tissue culture (expanding, producing, overgrowing, etc.) to maximize productivity and to calculate the optimal settings using evolutionary algorithms... Any complex process control could take advantage of this kind of applications -currently not available- because of computational limitations. Had a previous optimization task that would have taken 150,000 years to complete using a brute force algorithm on a "monofilament" CPU-based application. Converted it to a genetic algorithm and it gives me a good enough solution in 3-4 days on the same standard PC. Now, with GPU, that problem could be solved in fifteen minutes while expanding the evolutionary depth and finding better solutions using even more complex fitness functions.

Ask yourself what do you want: tinkering with the conveniences of the IDE that already does the job well enough; or open the door to new landscapes that could be conquered by using the simple elegance and effectiveness of LabWindows and the power of GPUs?

 

It has been discussed a few times in this forum, but so far it is impossible to 'know' when the mouse cursor is above a certain menu item. This information might be used for example to display some context help.

 

Hence I would suggest that using the menu callback of the respective menu item it should be possible to be notified about the mouse cursor position once it is over the area of the respective menu entry, e.g. by providing a MOUSE_OVER_MENU_ITEM event.

Right now, it is possible to add a readme file to the distribution (Build / Distribution / Edit...). Unfortunately, the file type of a readme file (and the license agreement file) is limited to *.rtf. 

 

It might be useful to distribute a more 'complex' readme file, e.g. including figures. Hence I would prefer to distribute readme.pdf instead of readme.rtf

 

Adding a example code in CVI for CAN FD in CVI is very important for the customers , sending a CAN FD frames in CVI is not as easy as labview , it requires deep knowledge of pointers .

Please include example for sending different payloads like 8, 12, 20, 24, 64.

 

Thanks

Network Variables currently provide support for OPC DA. However, the industry has been moving from OPC DA to OPC UA (Unified Architecture). The reasons for this are many, but mainly based on security and ease of use. Surveys over the last couple of years show that there are now more devices and applications being produced with OPC UA support than DA support. I have enquired whether NI are planning to support UA technology, but it seems that this is not in the pipe line.

 

There are solutions available (open62541, for example) that may provide a solution. Does anyone have any experience with using this solution with CVI?

 

I am looki

Hello,

watch expressions support the possibility to monitor changes of variables by placing the variable in the watch window. Unfortunately, at present it seems impossible to put a 2 D variable in the watch window, e.g., x_data [  2  ] [  3  ].

The new idea is to allow this Smiley Happy

Thanks!

When compiling projects with several files the build output window sometimes is flooded with warning and error messages. Typically I focus on one file at a time and then have to scroll through this long list searching for the file of interest. In such a situation I would consider it useful having an additional menu entry in the right click menu (shown below) such as 'Collapse All', reducing the many lines in the build output window to one line per file, greatly simplifying the search for a specific file.build.png

 

Thanks!

Before CVI2012 a conditional breakpoint could be toggled between enabled and disabled with a single mouse click. The behaviour changed in that version so that a mouse click now deletes the breakpoint.

I understand that this is more consistent with the behaviour of an unconditional breakpoint, which is set and deleted with the mouse click; I understand also that Ctrl+F9 shortcut key has been introduced to toggle breakpoint state, but in my opinion this new arrangement is less user friendly than before.

 

The risk is that once you set a conditional breakpoint, possibily with a complicated condition and/or pass count set to match some particular operating condition, you can delete it with a single click while you would maybe simply disabling it.

 

The same applies if you press F9, so I suggest additionally that when F9 key is applied to a conditional breakpoint it disables the breakpoint instead of deleting it.

 

Most user settings are kept in either the project or the workspace file. Unfortunately, this is not true for building a function tree (Options/Generate Function Tree). Starting CVI the previous entries are lost. Actually this is an old issue but may be not too old to be improved... Smiley Wink

 

So I suggest to save the information about Instrument name, Function prefix, Default qualifier, and Output function tree in the appropriate configuration file (prj or cws)

 

Thanks Smiley Wink

Hello,

 

building upon my earlier (but difficult to implement) suggestion and the forum discussion on event data here I can provide a hopefully improved suggestion.

 

The issues addressed by this idea:

  • receiving an EVENT_DATA_CHANGED event for a numeric control does not mean that the numeric value has changed
  • receiving an EVENT_DATA_CHANGED event for a numeric control does not provide information if the value has been increased or decreased
  • receiving an EVENT_DATA_CHANGED event for a numeric control does not provide information if the 'up' or 'down' arrow button has been pressed (which is not necessarily the same as the second issue)

Idea: Provide eventData1 and eventData2 information.

 

For example, eventData1 could tell about the numeric value:

  • eventData1 = -1: numeric value has been decreased
  • eventData1 = 0: numeric value is unchanged
  • eventData1 = 1: numeric value has been increased

eventData2 could tell about the increment/decrement arrow, e.g.:

  • eventData2 = -1: decrement arrow has been pressed by mouse
  • eventData2 = -2: decrement arrow has been pressed on keyboard
  • eventData2= 1: increment arrow has been pressed by mouse
  • eventData2= 2: increment arrow has been pressed on keyboard

Since so far no eventdata are provided this suggestion should not break backward compatibility.

(Coming from this forum discussion)

 

If you double click on a UI browser element you'll go to the corresponding panel or control in the editor. That's good! Smiley Happy

There doesn't seem to be a way to go the opposite direction (i.e. from a control in the user interface editor to the corresponding item in the user interface browser tree) Smiley Sad : this could be useful in case of complex UIR files with several panels and controls, especially if you have more than one control array in it.

 

So I suggest to add two options to the control context menu to locate the control in the UI browser ad to locate in a control aray if it is included in any of them.

I'm thinking to something like that:

 

 Screenshot 2015-03-06 09.26.41.jpg

 

It would be handy if these new items could be assigned a shortcut key too: ctrl+U and ctrl+R could be a good choice (presently ctrl+U is not used in the UIR editor and ctrl+R is not active at design time)