LabWindows/CVI Idea Exchange

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

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.

So for any bracket opening (, [, or {, CVI editor automatically adds corresponding closing bracket and place cursor between them. I saw this feature somewhere online and it was very convenient.

 

At present, you cannot edit text attributes when several controls are selected. It would be nice to be able to set text attributes the same way as we can set other attributes (e.g. status of leds or min/max limits for numerics and so on).

I am interested both in attributes for control text and control label.

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

Right now if multiple controls are selected you cannot jump to the code with "View control callback" menu option or Ctrl+B accelerator even if they have the same callback. It could be handy to be permitted to go to source if selected controls have the same callback.

 

Consider this scenario:

On a panel you create two buttons, select both of them and edit their properties assigning a (unique) callback to both. Next with both controls selected you generate the callback using "Generate Control Callback" or Ctrl+G. Now you would like to go and code something in the callback but you're not allowed to: you need multiple clicks to go to source: one click anywhere on the panel to deselect controls, one to select one of the buttons and finally the right click or accelerator key. Not very handy...

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.

Hello,

 

I have a table with several columns. Let's assume I want to modify properties of column 5. It would be nice if when clicking on column 5 in the UI editor this column would be preselected. Right now, the table editor opens and one has to manually select a column...

 

Thanks

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

 

While defining attachment mode for controls attached to a splitter we face a very strange situation. In this image you can see on the right the aspect of the window with one control selected in "Controls on the splitter" window in Attach/Detach Controls dialog. On the right the same dialog when you click on Attachment mode control:

 

SplitterCtrlAssignment.png

 

Now, there are two strange effects:

  1. Attachment mode control is being operated while dimmed Smiley Surprised
  2. If you happen to miss Attachment mode ring, you need to select again the original control in order to have the ring enabled, which is boring and time-wasting

I suggest that at least that ring is not disabled when clicking on it or clicking away from "Controls on the splitter" box.

 

(this suggestion refers to CVI up to 2012SP1, I cannot check it for more recent releases)

While it is possible to add, remove and replace files in a CVI project it is not possible to rename or duplicate a file.

 

This is useful for example if a large source code file shall be split to speed up compilation. Although this file operation could be done outside of CVI associated tags would be lost.

 

A workaround has been offered here but a more elegant and simple solution would be welcome. Hence I suggest to provide two more commands to add and duplicate a file including its associated tags and breakpoints...

 

Thanks.

Sorry for the long message.

My proposals are at the very end of this post

In order to understand the rationales I propose 2 experiments

 

Experiment #1:

In C:\Users\Public\Documents\National Instruments\CVI2013\samples\userint
Open 2yaxis project

 

Here is the code of interrest (lines 131-145):

 

int CVICALLBACK ScaleIt (int panel, int control, int event, void *callbackData,
                         int eventData1, int eventData2)
{
    int val;
    
    if (event == EVENT_COMMIT)
        {
        GetCtrlVal (panel, control, &val);
        SetCtrlAttribute (panel, PANEL_GRAPH, ATTR_ACTIVE_YAXIS,
                          VAL_RIGHT_YAXIS);   
        SetCtrlAttribute (panel, PANEL_GRAPH, ATTR_YMAP_MODE, val);
        SetActiveCtrl (panel, PANEL_GRAPH);
        }
    return 0;
}

 

Set a break point line 141 (second SetCtrlAttribute())
Then comment line 141 with 2 "/" at the beginning of the line of code
Debug the project (SHIFT+F5)
Before the code start, the breakpoint move "automatically" from line 141 to 142

 

Note : This is "OK". Indeed line 141 is no longer executable so it seems reasonable to move the breakpoint to the next valid line of code.

 

When the UIR appears, click on the scale control
Once in the editor, stop the debug session

 

At this point you should see the breakpoint moving automatically from line 142 to line 141

 

Question : Why? While the breakpoint on line 142 is enable and valid , why does the breakpoint "remember" it comes from
line 141 and then "decide" do go back on this line?


I believe it has to do with the fact that CVI try to set the environment back to the state it was before debugging the code.
IMHO this is weird.

Indeed, at the end we have a source code with a breakpoint set on a commented line.

What is the value for the user?

 

 

Experiment #2 :
If you run the same experiment but, this time, starting with a breakpoint and a comment on line 142 (last SetActiveCtrl() function call)
then the breakpoint move automatically from line 142 to line 144 (return statement)

 

The issue now is that the code stop on the return statement quite often and not only when the EVENT_COMMIT is managed

 

Based on previous experiments I would like to suggest the following 

 

Plan A :


- During code edition, commenting a line of code which have a breakpoint CVI should disable the breakpoint (grey diamond). This provide visual information to the user.
- CVI should not try to find a new line of code where to set an active breakpoint
- Uncommenting a line which had a breakpoint CVI should NOT enable the breakpoint for the user. The breakpoint should stay grey. A single click on the grey diamond should enable the breakpoint (see another proposal I made about breakpoints)

 


Plan B :


- If, before execution, one breakpoint is found on a commented line
- Disable the breakpoint on the commented line (grey diamond). This provide visual information to the user.
- Try to set an new active breakpoint to the statement right after the current line of code if and only if :

a - the statement belongs to the same current block ( {.....} )

b - the condition (if any) is still valid on the selected line of code (this is already done today by CVI)

- If this is not possible, try to set an new active breakpoint to the statement right before the current line of code if and only if :

a - the statement belongs to the same current block ( {.....} )

b - the condition (if any) is still valid on the selected line of code

- Once set, even after the debugging session ends, the new active breakpoint remains active and in place

 

 

I vote for Plan B

Best regards, Philippe

It would be great if NI could provide standard translations of the NI runtime message file msgrte.txt in commonly-used languages.

 

Whilst we can get translations done ourselves, it is normally done by translators who have little knowledge of the runtime context so the quality is rather variable; also, I get the feeling that we are duplicating effort that may have been already spent elsewhere.

 

If it helps, I for one would be willing to pay for a decent translation.

Hi,

 

It would be nice to be able to set the ON and OFF values on toggle buttons the same way that they can be set for binary switches, instead of having them hardcoded to be 1 and 0.  Thanks..

CTRL+Q should highlight all instances of the results in the editor

Same thing with CTRL+F

This is similar to Notepad++ for example

 

I find the ALT+UP ARROW and ALT+DOWN ARROW of Visual Studio 2013 quite useful (move selected lines)

 

Please, implement CTRL + L to delete a line

I know the short cut is already owned by "go to line" but my current macro is not that good ๐Ÿ˜ž

 

It seems macros are not working in the editor while debugging a code.

Could be usefull.

Will be mandatory if one day the "Comment multiple lines" is implemeted using a macro ๐Ÿ™‚

 

Best regards, Philippe